{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "2c0a009b",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-10-05T18:02:05.572833Z",
     "iopub.status.busy": "2024-10-05T18:02:05.571806Z",
     "iopub.status.idle": "2024-10-05T18:02:28.135579Z",
     "shell.execute_reply": "2024-10-05T18:02:28.133257Z"
    },
    "papermill": {
     "duration": 22.584493,
     "end_time": "2024-10-05T18:02:28.139756",
     "exception": false,
     "start_time": "2024-10-05T18:02:05.555263",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\u001b[31mERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.\r\n",
      "bigframes 0.22.0 requires google-cloud-bigquery[bqstorage,pandas]>=3.10.0, but you have google-cloud-bigquery 2.34.4 which is incompatible.\r\n",
      "bigframes 0.22.0 requires google-cloud-storage>=2.0.0, but you have google-cloud-storage 1.44.0 which is incompatible.\r\n",
      "bigframes 0.22.0 requires pandas<2.1.4,>=1.5.0, but you have pandas 2.2.3 which is incompatible.\r\n",
      "cesium 0.12.3 requires numpy<3.0,>=2.0, but you have numpy 1.26.4 which is incompatible.\r\n",
      "dataproc-jupyter-plugin 0.1.79 requires pydantic~=1.10.0, but you have pydantic 2.9.2 which is incompatible.\u001b[0m\u001b[31m\r\n",
      "\u001b[0m"
     ]
    }
   ],
   "source": [
    "!pip install scikit-learn -U -q"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "35d3e07c",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-10-05T18:02:28.168770Z",
     "iopub.status.busy": "2024-10-05T18:02:28.166763Z",
     "iopub.status.idle": "2024-10-05T18:02:33.393659Z",
     "shell.execute_reply": "2024-10-05T18:02:33.391839Z"
    },
    "papermill": {
     "duration": 5.24336,
     "end_time": "2024-10-05T18:02:33.396871",
     "exception": false,
     "start_time": "2024-10-05T18:02:28.153511",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [],
   "source": [
    "# Importing core libraries\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "from time import time\n",
    "import pprint\n",
    "import joblib\n",
    "\n",
    "# Suppressing warnings because of skopt verbosity\n",
    "import warnings\n",
    "warnings.filterwarnings(\"ignore\")\n",
    "\n",
    "# Classifiers\n",
    "import lightgbm as lgb\n",
    "\n",
    "# Model selection\n",
    "from sklearn.model_selection import StratifiedKFold\n",
    "\n",
    "# Metrics\n",
    "from sklearn.metrics import roc_auc_score\n",
    "from sklearn.metrics import make_scorer\n",
    "\n",
    "# Skopt functions\n",
    "from skopt import BayesSearchCV\n",
    "from skopt.callbacks import DeadlineStopper, DeltaYStopper\n",
    "from skopt.space import Real, Categorical, Integer\n",
    "\n",
    "# Plotting functions\n",
    "import seaborn as sns\n",
    "from matplotlib import pyplot as plt\n",
    "#sns.set(style='whitegrid')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b835a07e",
   "metadata": {
    "papermill": {
     "duration": 0.010741,
     "end_time": "2024-10-05T18:02:33.418074",
     "exception": false,
     "start_time": "2024-10-05T18:02:33.407333",
     "status": "completed"
    },
    "tags": []
   },
   "source": [
    "## 1. First steps"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a0c7425e",
   "metadata": {
    "papermill": {
     "duration": 0.009889,
     "end_time": "2024-10-05T18:02:33.437985",
     "exception": false,
     "start_time": "2024-10-05T18:02:33.428096",
     "status": "completed"
    },
    "tags": []
   },
   "source": [
    "As first steps: \n",
    "* we load the train and test data from disk\n",
    "* we separate the target from the training data\n",
    "* we separate the ids from the test data (thus train and test data have the same structure)\n",
    "* we convert integer variables to categories (thus our machine learning algorithm can pick them as categorical variables and not standard numeric one)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "831fd03f",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-10-05T18:02:33.462227Z",
     "iopub.status.busy": "2024-10-05T18:02:33.461495Z",
     "iopub.status.idle": "2024-10-05T18:02:33.766292Z",
     "shell.execute_reply": "2024-10-05T18:02:33.764909Z"
    },
    "papermill": {
     "duration": 0.319928,
     "end_time": "2024-10-05T18:02:33.769539",
     "exception": false,
     "start_time": "2024-10-05T18:02:33.449611",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [],
   "source": [
    "# Loading data \n",
    "X = pd.read_csv(\"../input/amazon-employee-access-challenge/train.csv\")\n",
    "X_test = pd.read_csv(\"../input/amazon-employee-access-challenge/test.csv\")\n",
    "\n",
    "# Separating the target from the predictors\n",
    "y = X[\"ACTION\"]\n",
    "X.drop([\"ACTION\"], axis=\"columns\", inplace=True)\n",
    "\n",
    "# Separating the identifier from the test data\n",
    "ids = X_test[\"id\"]\n",
    "X_test.drop(\"id\", axis=\"columns\", inplace=True)\n",
    "\n",
    "# Converting all integer variables to categorical\n",
    "integer_cols = X.select_dtypes(include=['int']).columns\n",
    "X[integer_cols] = X[integer_cols].astype('category', copy=False)\n",
    "X_test[integer_cols] = X_test[integer_cols].astype('category', copy=False)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "6b9eeffa",
   "metadata": {
    "papermill": {
     "duration": 0.00934,
     "end_time": "2024-10-05T18:02:33.789603",
     "exception": false,
     "start_time": "2024-10-05T18:02:33.780263",
     "status": "completed"
    },
    "tags": []
   },
   "source": [
    "# 2. EDA"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "5be1b2ca",
   "metadata": {
    "papermill": {
     "duration": 0.00983,
     "end_time": "2024-10-05T18:02:33.810303",
     "exception": false,
     "start_time": "2024-10-05T18:02:33.800473",
     "status": "completed"
    },
    "tags": []
   },
   "source": [
    "At this point we have a look at the training and test data in order to figure out how we can process the data."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "780a0f12",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-10-05T18:02:33.833491Z",
     "iopub.status.busy": "2024-10-05T18:02:33.833041Z",
     "iopub.status.idle": "2024-10-05T18:02:33.870113Z",
     "shell.execute_reply": "2024-10-05T18:02:33.868209Z"
    },
    "papermill": {
     "duration": 0.053311,
     "end_time": "2024-10-05T18:02:33.874201",
     "exception": false,
     "start_time": "2024-10-05T18:02:33.820890",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Unique values\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>train</th>\n",
       "      <th>test</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>RESOURCE</th>\n",
       "      <td>7518</td>\n",
       "      <td>4971</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>MGR_ID</th>\n",
       "      <td>4243</td>\n",
       "      <td>4689</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ROLE_ROLLUP_1</th>\n",
       "      <td>128</td>\n",
       "      <td>126</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ROLE_ROLLUP_2</th>\n",
       "      <td>177</td>\n",
       "      <td>177</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ROLE_DEPTNAME</th>\n",
       "      <td>449</td>\n",
       "      <td>466</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ROLE_TITLE</th>\n",
       "      <td>343</td>\n",
       "      <td>351</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ROLE_FAMILY_DESC</th>\n",
       "      <td>2358</td>\n",
       "      <td>2749</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ROLE_FAMILY</th>\n",
       "      <td>67</td>\n",
       "      <td>68</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ROLE_CODE</th>\n",
       "      <td>343</td>\n",
       "      <td>351</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                  train  test\n",
       "RESOURCE           7518  4971\n",
       "MGR_ID             4243  4689\n",
       "ROLE_ROLLUP_1       128   126\n",
       "ROLE_ROLLUP_2       177   177\n",
       "ROLE_DEPTNAME       449   466\n",
       "ROLE_TITLE          343   351\n",
       "ROLE_FAMILY_DESC   2358  2749\n",
       "ROLE_FAMILY          67    68\n",
       "ROLE_CODE           343   351"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "print(\"Unique values\")\n",
    "(pd.concat([X.apply(lambda x: len(x.unique())), \n",
    "            X_test.apply(lambda x: len(x.unique()))\n",
    "           ], axis=\"columns\")\n",
    " .rename(columns={0: \"train\", 1:\"test\"}))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "fe29e24f",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-10-05T18:02:33.898935Z",
     "iopub.status.busy": "2024-10-05T18:02:33.898413Z",
     "iopub.status.idle": "2024-10-05T18:02:33.921729Z",
     "shell.execute_reply": "2024-10-05T18:02:33.919641Z"
    },
    "papermill": {
     "duration": 0.039287,
     "end_time": "2024-10-05T18:02:33.925010",
     "exception": false,
     "start_time": "2024-10-05T18:02:33.885723",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Values in test but not in train\n",
      "RESOURCE             2547\n",
      "MGR_ID                224\n",
      "ROLE_ROLLUP_1           4\n",
      "ROLE_ROLLUP_2           6\n",
      "ROLE_DEPTNAME          10\n",
      "ROLE_TITLE             10\n",
      "ROLE_FAMILY_DESC      202\n",
      "ROLE_FAMILY             0\n",
      "ROLE_CODE              10\n"
     ]
    }
   ],
   "source": [
    "print(\"Values in test but not in train\")\n",
    "for col in integer_cols:\n",
    "    mismatched_codes = len(np.setdiff1d(X[col].unique(), X_test[col].unique()))\n",
    "    print(f\"{col:20} {mismatched_codes:4}\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "ce705783",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-10-05T18:02:33.949438Z",
     "iopub.status.busy": "2024-10-05T18:02:33.948914Z",
     "iopub.status.idle": "2024-10-05T18:02:33.969296Z",
     "shell.execute_reply": "2024-10-05T18:02:33.967704Z"
    },
    "papermill": {
     "duration": 0.036413,
     "end_time": "2024-10-05T18:02:33.972832",
     "exception": false,
     "start_time": "2024-10-05T18:02:33.936419",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Missing cases\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>train</th>\n",
       "      <th>test</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>RESOURCE</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>MGR_ID</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ROLE_ROLLUP_1</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ROLE_ROLLUP_2</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ROLE_DEPTNAME</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ROLE_TITLE</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ROLE_FAMILY_DESC</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ROLE_FAMILY</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ROLE_CODE</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                  train  test\n",
       "RESOURCE              0     0\n",
       "MGR_ID                0     0\n",
       "ROLE_ROLLUP_1         0     0\n",
       "ROLE_ROLLUP_2         0     0\n",
       "ROLE_DEPTNAME         0     0\n",
       "ROLE_TITLE            0     0\n",
       "ROLE_FAMILY_DESC      0     0\n",
       "ROLE_FAMILY           0     0\n",
       "ROLE_CODE             0     0"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "print(\"Missing cases\")\n",
    "(pd.concat([X.isna().sum(), \n",
    "           X_test.isna().sum()\n",
    "           ], axis=\"columns\")\n",
    " .rename(columns={0: \"train\", 1:\"test\"}))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "7c88c1a4",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-10-05T18:02:34.000171Z",
     "iopub.status.busy": "2024-10-05T18:02:33.999548Z",
     "iopub.status.idle": "2024-10-05T18:02:34.433165Z",
     "shell.execute_reply": "2024-10-05T18:02:34.431241Z"
    },
    "papermill": {
     "duration": 0.451724,
     "end_time": "2024-10-05T18:02:34.436114",
     "exception": false,
     "start_time": "2024-10-05T18:02:33.984390",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA2QAAAINCAYAAABRZLzuAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuNSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/xnp5ZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA43UlEQVR4nO3de5jWBZ3//9dwmAGMGUKCgRwVNUU8rqg4nVViLGqjqPWUS4aaLrgJmwfKwMO2muWpRNlKxa5v5GE33QLDEAPWZdQcJcWEMvWLhQOawigpw+H+/bFf7p8TeBgCPhwej+u6r6v5fN5z3+97rs9lPK977nsqSqVSKQAAAGx1HYpeAAAAYGclyAAAAAoiyAAAAAoiyAAAAAoiyAAAAAoiyAAAAAoiyAAAAAoiyAAAAArSqegFdhTr1q3LkiVL0r1791RUVBS9DgAAUJBSqZRXXnkl/fr1S4cOb/0amCDbTJYsWZK6urqi1wAAALYRzz33XHbbbbe3nBFkm0n37t2T/O8Pvbq6uuBtAACAorS0tKSurq7cCG9FkG0m639Nsbq6WpABAADv6K1MPtQDAACgIIIMAACgIIIMAACgIIIMAACgIIIMAACgIIIMAACgIIIMAACgIIIMAACgIIIMAACgIIIMAACgIIIMAACgIIIMAACgIIIMAACgIIIMAACgIIIMAACgIIIMAACgIIIMAACgIIIMAACgIJ2KXgAAANi2LV68OC+++GLRa7ytXr16Zffddy96jXYRZAAAwJtavHhxBgzYP6+99peiV3lbXbt2y8KFT25XUSbIAACAN/Xiiy/mtdf+ksFfmpjqvnsWvc6bann+2Tx408V58cUXBRkAALBjqe67Z3ruvl/Ra+xwfKgHAABAQQQZAABAQQQZAABAQQQZAABAQQQZAABAQQoNshtuuCEHH3xwqqurU11dnfr6+vziF78on3/99dczevTo7LrrrnnXu96VESNGZOnSpW3uY/HixRk2bFi6deuW3r1759xzz82aNWvazMyePTuHHXZYqqqqss8++2TKlCkb7DJp0qTsueee6dKlSwYPHpyHHnpoizxnAACA9QoNst122y2XX355mpqa8vDDD+eYY47Jpz/96TzxxBNJkrFjx+bnP/957rjjjsyZMydLlizJZz/72fL3r127NsOGDUtra2vmzZuXW265JVOmTMmECRPKM88880yGDRuWo48+OvPnz88555yT0047Lffcc0955rbbbsu4ceMyceLEPPLIIznkkEPS0NCQZcuWbb0fBgAAsNOpKJVKpaKXeKOePXvm29/+dj73uc/lPe95T6ZOnZrPfe5zSZKFCxdm//33T2NjY4466qj84he/yCc/+cksWbIkffr0SZJMnjw5559/fl544YVUVlbm/PPPz/Tp07NgwYLyY5xwwglZvnx5ZsyYkSQZPHhwjjjiiFx33XVJknXr1qWuri5nn312Lrjggne0d0tLS2pqarJixYpUV1dvzh8JAAAU5pFHHsmgQYPysa/fvE3/HbKXFi/KzG+emqamphx22GGF7tKeNthm3kO2du3a3HrrrVm5cmXq6+vT1NSU1atXZ8iQIeWZAQMGZPfdd09jY2OSpLGxMQcddFA5xpKkoaEhLS0t5VfZGhsb29zH+pn199Ha2pqmpqY2Mx06dMiQIUPKMxuzatWqtLS0tLkBAAC0R+FB9vjjj+dd73pXqqqqcuaZZ+bOO+/MwIED09zcnMrKyvTo0aPNfJ8+fdLc3JwkaW5ubhNj68+vP/dWMy0tLXnttdfy4osvZu3atRudWX8fG3PZZZelpqamfKurq9uk5w8AAOy8Cg+y/fbbL/Pnz8+DDz6Ys846KyNHjsxvf/vbotd6W+PHj8+KFSvKt+eee67olQAAgO1Mp6IXqKyszD777JMkGTRoUH7961/n2muvzfHHH5/W1tYsX768zatkS5cuTW1tbZKktrZ2g09DXP8pjG+c+etPZly6dGmqq6vTtWvXdOzYMR07dtzozPr72JiqqqpUVVVt2pMGAADINvAK2V9bt25dVq1alUGDBqVz586ZNWtW+dyiRYuyePHi1NfXJ0nq6+vz+OOPt/k0xJkzZ6a6ujoDBw4sz7zxPtbPrL+PysrKDBo0qM3MunXrMmvWrPIMAADAllDoK2Tjx4/Pxz/+8ey+++555ZVXMnXq1MyePTv33HNPampqMmrUqIwbNy49e/ZMdXV1zj777NTX1+eoo45KkgwdOjQDBw7MKaeckiuuuCLNzc258MILM3r06PKrV2eeeWauu+66nHfeefnSl76U++67L7fffnumT59e3mPcuHEZOXJkDj/88Bx55JG55pprsnLlypx66qmF/FwAAICdQ6FBtmzZsvzjP/5jnn/++dTU1OTggw/OPffck4997GNJkquvvjodOnTIiBEjsmrVqjQ0NOT6668vf3/Hjh0zbdq0nHXWWamvr88uu+ySkSNH5pJLLinP9O/fP9OnT8/YsWNz7bXXZrfddssPf/jDNDQ0lGeOP/74vPDCC5kwYUKam5tz6KGHZsaMGRt80AcAAMDmtM39HbLtlb9DBgDAjsjfIWu/7fLvkAEAAOxsBBkAAEBBBBkAAEBBBBkAAEBBBBkAAEBBBBkAAEBBBBkAAEBBBBkAAEBBBBkAAEBBBBkAAEBBBBkAAEBBBBkAAEBBBBkAAEBBBBkAAEBBBBkAAEBBBBkAAEBBBBkAAEBBBBkAAEBBBBkAAEBBBBkAAEBBBBkAAEBBBBkAAEBBBBkAAEBBBBkAAEBBBBkAAEBBBBkAAEBBBBkAAEBBBBkAAEBBBBkAAEBBBBkAAEBBBBkAAEBBBBkAAEBBBBkAAEBBBBkAAEBBBBkAAEBBBBkAAEBBBBkAAEBBBBkAAEBBBBkAAEBBBBkAAEBBBBkAAEBBBBkAAEBBBBkAAEBBBBkAAEBBBBkAAEBBBBkAAEBBBBkAAEBBBBkAAEBBBBkAAEBBBBkAAEBBBBkAAEBBBBkAAEBBBBkAAEBBBBkAAEBBBBkAAEBBBBkAAEBBBBkAAEBBBBkAAEBBBBkAAEBBBBkAAEBBCg2yyy67LEcccUS6d++e3r17Z/jw4Vm0aFGbmY9+9KOpqKhoczvzzDPbzCxevDjDhg1Lt27d0rt375x77rlZs2ZNm5nZs2fnsMMOS1VVVfbZZ59MmTJlg30mTZqUPffcM126dMngwYPz0EMPbfbnDAAAsF6hQTZnzpyMHj06DzzwQGbOnJnVq1dn6NChWblyZZu5008/Pc8//3z5dsUVV5TPrV27NsOGDUtra2vmzZuXW265JVOmTMmECRPKM88880yGDRuWo48+OvPnz88555yT0047Lffcc0955rbbbsu4ceMyceLEPPLIIznkkEPS0NCQZcuWbfkfBAAAsFPqVOSDz5gxo83XU6ZMSe/evdPU1JQPf/jD5ePdunVLbW3tRu/jl7/8ZX7729/m3nvvTZ8+fXLooYfm0ksvzfnnn5+LLroolZWVmTx5cvr3758rr7wySbL//vvn/vvvz9VXX52GhoYkyVVXXZXTTz89p556apJk8uTJmT59em666aZccMEFW+LpAwAAO7lt6j1kK1asSJL07NmzzfEf//jH6dWrVw488MCMHz8+f/nLX8rnGhsbc9BBB6VPnz7lYw0NDWlpackTTzxRnhkyZEib+2xoaEhjY2OSpLW1NU1NTW1mOnTokCFDhpRn/tqqVavS0tLS5gYAANAehb5C9kbr1q3LOeeckw984AM58MADy8dPOumk7LHHHunXr18ee+yxnH/++Vm0aFF++tOfJkmam5vbxFiS8tfNzc1vOdPS0pLXXnstL7/8ctauXbvRmYULF25038suuywXX3zx3/akAQCAndo2E2SjR4/OggULcv/997c5fsYZZ5T/90EHHZS+ffvm2GOPzR/+8IfsvffeW3vNsvHjx2fcuHHlr1taWlJXV1fYPgAAwPZnmwiyMWPGZNq0aZk7d2522223t5wdPHhwkuSpp57K3nvvndra2g0+DXHp0qVJUn7fWW1tbfnYG2eqq6vTtWvXdOzYMR07dtzozJu9d62qqipVVVXv/EkCAAD8lULfQ1YqlTJmzJjceeedue+++9K/f/+3/Z758+cnSfr27Zskqa+vz+OPP97m0xBnzpyZ6urqDBw4sDwza9asNvczc+bM1NfXJ0kqKyszaNCgNjPr1q3LrFmzyjMAAACbW6GvkI0ePTpTp07Nf/3Xf6V79+7l93zV1NSka9eu+cMf/pCpU6fmE5/4RHbdddc89thjGTt2bD784Q/n4IMPTpIMHTo0AwcOzCmnnJIrrrgizc3NufDCCzN69OjyK1hnnnlmrrvuupx33nn50pe+lPvuuy+33357pk+fXt5l3LhxGTlyZA4//PAceeSRueaaa7Jy5crypy4CAABsboUG2Q033JDkf//48xvdfPPN+eIXv5jKysrce++95Tiqq6vLiBEjcuGFF5ZnO3bsmGnTpuWss85KfX19dtlll4wcOTKXXHJJeaZ///6ZPn16xo4dm2uvvTa77bZbfvjDH5Y/8j5Jjj/++LzwwguZMGFCmpubc+ihh2bGjBkbfNAHAADA5lJokJVKpbc8X1dXlzlz5rzt/eyxxx65++6733Lmox/9aB599NG3nBkzZkzGjBnzto8HAACwOWxTf4cMAABgZyLIAAAACiLIAAAACiLIAAAACiLIAAAACiLIAAAACiLIAAAACiLIAAAACiLIAAAACiLIAAAACiLIAAAACiLIAAAACiLIAAAACiLIAAAACiLIAAAACiLIAAAACiLIAAAACiLIAAAACiLIAAAACiLIAAAACiLIAAAACiLIAAAACiLIAAAACiLIAAAACiLIAAAACiLIAAAACiLIAAAACiLIAAAACiLIAAAACiLIAAAACiLIAAAACiLIAAAACiLIAAAACiLIAAAACiLIAAAACiLIAAAACiLIAAAACiLIAAAACiLIAAAACiLIAAAACiLIAAAACiLIAAAACiLIAAAACiLIAAAACiLIAAAACiLIAAAACiLIAAAACiLIAAAACiLIAAAACiLIAAAACiLIAAAACiLIAAAACiLIAAAACiLIAAAACiLIAAAACiLIAAAACiLIAAAACiLIAAAACiLIAAAACiLIAAAAClJokF122WU54ogj0r179/Tu3TvDhw/PokWL2sy8/vrrGT16dHbddde8613vyogRI7J06dI2M4sXL86wYcPSrVu39O7dO+eee27WrFnTZmb27Nk57LDDUlVVlX322SdTpkzZYJ9JkyZlzz33TJcuXTJ48OA89NBDm/05AwAArFdokM2ZMyejR4/OAw88kJkzZ2b16tUZOnRoVq5cWZ4ZO3Zsfv7zn+eOO+7InDlzsmTJknz2s58tn1+7dm2GDRuW1tbWzJs3L7fcckumTJmSCRMmlGeeeeaZDBs2LEcffXTmz5+fc845J6eddlruueee8sxtt92WcePGZeLEiXnkkUdyyCGHpKGhIcuWLds6PwwAAGCnU1EqlUpFL7HeCy+8kN69e2fOnDn58Ic/nBUrVuQ973lPpk6dms997nNJkoULF2b//fdPY2NjjjrqqPziF7/IJz/5ySxZsiR9+vRJkkyePDnnn39+XnjhhVRWVub888/P9OnTs2DBgvJjnXDCCVm+fHlmzJiRJBk8eHCOOOKIXHfddUmSdevWpa6uLmeffXYuuOCCt929paUlNTU1WbFiRaqrqzf3jwYAAArxyCOPZNCgQfnY129Oz933K3qdN/XS4kWZ+c1T09TUlMMOO6zQXdrTBtvUe8hWrFiRJOnZs2eSpKmpKatXr86QIUPKMwMGDMjuu++exsbGJEljY2MOOuigcowlSUNDQ1paWvLEE0+UZ954H+tn1t9Ha2trmpqa2sx06NAhQ4YMKc8AAABsbp2KXmC9devW5ZxzzskHPvCBHHjggUmS5ubmVFZWpkePHm1m+/Tpk+bm5vLM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GDAgXbp0yUEHHZS77777nf9gAAAANkG7guyaa67J6aefnurq6g3O1dTU5Mtf/nKuuuqqd3x/K1euzCGHHJJJkya96cxxxx2X559/vnz7yU9+0ub8ySefnCeeeCIzZ87MtGnTMnfu3Jxxxhnl8y0tLRk6dGj22GOPNDU15dvf/nYuuuiifP/73y/PzJs3LyeeeGJGjRqVRx99NMOHD8/w4cOzYMGCd/xcAAAA2qtdv7L4m9/8Jt/61rfe9PzQoUPzne985x3f38c//vF8/OMff8uZqqqq1NbWbvTck08+mRkzZuTXv/51Dj/88CTJ9773vXziE5/Id77znfTr1y8//vGP09ramptuuimVlZU54IADMn/+/Fx11VXlcLv22mtz3HHH5dxzz02SXHrppZk5c2auu+66TJ48+R0/HwAAgPZo1ytkS5cu3ejH3a/XqVOnvPDCC3/zUm80e/bs9O7dO/vtt1/OOuus/PnPfy6fa2xsTI8ePcoxliRDhgxJhw4d8uCDD5ZnPvzhD6eysrI809DQkEWLFuXll18uz/z1+98aGhrS2Nj4pnutWrUqLS0tbW4AAADt0a4ge+973/uWv8b32GOPpW/fvn/zUusdd9xx+dGPfpRZs2blW9/6VubMmZOPf/zjWbt2bZKkubk5vXv3bvM9nTp1Ss+ePdPc3Fye6dOnT5uZ9V+/3cz68xtz2WWXpaampnyrq6v7254sAACw02lXkH3iE5/IN77xjbz++usbnHvttdcyceLEfPKTn9xsy51wwgn5+7//+xx00EEZPnx4pk2bll//+teZPXv2ZnuMTTV+/PisWLGifHvuueeKXgkAANjOtOs9ZBdeeGF++tOfZt99982YMWOy3377JUkWLlyYSZMmZe3atfn617++RRZNkr322iu9evXKU089lWOPPTa1tbVZtmxZm5k1a9bkpZdeKr/vrLa2NkuXLm0zs/7rt5t5s/euJf/73raqqqq/+TkBAAA7r3a9QtanT5/MmzcvBx54YMaPH5/PfOYz+cxnPpOvfe1rOfDAA3P//fdv8Kt/m9Mf//jH/PnPfy7/WmR9fX2WL1+epqam8sx9992XdevWZfDgweWZuXPnZvXq1eWZmTNnZr/99su73/3u8sysWbPaPNbMmTNTX1+/xZ4LAABAu/8w9B577JG77747L7/8cp566qmUSqW8733vK8dNe7z66qt56qmnyl8/88wzmT9/fnr27JmePXvm4osvzogRI1JbW5s//OEPOe+887LPPvukoaEhyf/+Merjjjsup59+eiZPnpzVq1dnzJgxOeGEE9KvX78kyUknnZSLL744o0aNyvnnn58FCxbk2muvzdVXX11+3K985Sv5yEc+kiuvvDLDhg3LrbfemocffrjNR+MDAABsbu0OsvXe/e5354gjjvibHvzhhx/O0UcfXf563LhxSZKRI0fmhhtuyGOPPZZbbrkly5cvT79+/TJ06NBceumlbX5V8Mc//nHGjBmTY489Nh06dMiIESPy3e9+t3y+pqYmv/zlLzN69OgMGjQovXr1yoQJE9r8rbL3v//9mTp1ai688MJ87Wtfy/ve977cddddOfDAA/+m5wcAAPBWNjnINoePfvSjKZVKb3r+nnvuedv76NmzZ6ZOnfqWMwcffHD++7//+y1nPv/5z+fzn//82z4eAADA5tKu95ABAACw+QgyAACAgggyAACAgggyAACAgggyAACAgggyAACAgggyAACAgggyAACAgggyAACAgggyAACAgggyAACAgggyAACAgggyAACAgggyAACAgggyAACAgggyAACAgggyAACAgggyAACAgggyAACAgggyAACAgggyAACAgggyAACAgggyAACAgggyAACAgggyAACAgggyAACAgggyAACAgggyAACAgggyAACAgggyAACAgggyAACAgggyAACAgggyAACAgggyAACAgggyAACAgggyAACAgggyAACAgggyAACAgggyAACAgggyAACAgggyAACAgggyAACAgggyAACAgggyAACAgggyAACAgggyAACAgggyAACAgggyAACAgggyAACAgggyAACAgggyAACAgggyAACAgggyAACAgggyAACAgggyAACAgggyAACAgggyAACAgggyAACAgggyAACAgggyAACAghQaZHPnzs2nPvWp9OvXLxUVFbnrrrvanC+VSpkwYUL69u2brl27ZsiQIfn973/fZuall17KySefnOrq6vTo0SOjRo3Kq6++2mbmsccey4c+9KF06dIldXV1ueKKKzbY5Y477siAAQPSpUuXHHTQQbn77rs3+/MFAAB4o0KDbOXKlTnkkEMyadKkjZ6/4oor8t3vfjeTJ0/Ogw8+mF122SUNDQ15/fXXyzMnn3xynnjiicycOTPTpk3L3Llzc8YZZ5TPt7S0ZOjQodljjz3S1NSUb3/727nooovy/e9/vzwzb968nHjiiRk1alQeffTRDB8+PMOHD8+CBQu23JMHAAB2ehWlUqlU9BJJUlFRkTvvvDPDhw9P8r+vjvXr1y//8i//kq9+9atJkhUrVqRPnz6ZMmVKTjjhhDz55JMZOHBgfv3rX+fwww9PksyYMSOf+MQn8sc//jH9+vXLDTfckK9//etpbm5OZWVlkuSCCy7IXXfdlYULFyZJjj/++KxcuTLTpk0r73PUUUfl0EMPzeTJk9/R/i0tLampqcmKFStSXV29uX4sAABQqEceeSSDBg3Kx75+c3ruvl/R67yplxYvysxvnpqmpqYcdthhhe7SnjbYZt9D9swzz6S5uTlDhgwpH6upqcngwYPT2NiYJGlsbEyPHj3KMZYkQ4YMSYcOHfLggw+WZz784Q+XYyxJGhoasmjRorz88svlmTc+zvqZ9Y+zMatWrUpLS0ubGwAAQHtss0HW3NycJOnTp0+b43369Cmfa25uTu/evduc79SpU3r27NlmZmP38cbHeLOZ9ec35rLLLktNTU35VldX196nCAAA7OS22SDb1o0fPz4rVqwo35577rmiVwIAALYz22yQ1dbWJkmWLl3a5vjSpUvL52pra7Ns2bI259esWZOXXnqpzczG7uONj/FmM+vPb0xVVVWqq6vb3AAAANpjmw2y/v37p7a2NrNmzSofa2lpyYMPPpj6+vokSX19fZYvX56mpqbyzH333Zd169Zl8ODB5Zm5c+dm9erV5ZmZM2dmv/32y7vf/e7yzBsfZ/3M+scBAADYEgoNsldffTXz58/P/Pnzk/zvB3nMnz8/ixcvTkVFRc4555z867/+a372s5/l8ccfzz/+4z+mX79+5U9i3H///XPcccfl9NNPz0MPPZT/+Z//yZgxY3LCCSekX79+SZKTTjoplZWVGTVqVJ544oncdtttufbaazNu3LjyHl/5ylcyY8aMXHnllVm4cGEuuuiiPPzwwxkzZszW/pEAAAA7kU5FPvjDDz+co48+uvz1+kgaOXJkpkyZkvPOOy8rV67MGWeckeXLl+eDH/xgZsyYkS5dupS/58c//nHGjBmTY489Nh06dMiIESPy3e9+t3y+pqYmv/zlLzN69OgMGjQovXr1yoQJE9r8rbL3v//9mTp1ai688MJ87Wtfy/ve977cddddOfDAA7fCTwEAANhZbTN/h2x75++QAQCwI/J3yNpvh/g7ZAAAADs6QQYAAFAQQQYAAFAQQQYAAFAQQQYAAFAQQQYAAFAQQQYAAFAQQQYAAFAQQQYAAFAQQQYAAFAQQQYAAFAQQQYAAFAQQQYAAFAQQQYAAFAQQQYAAFAQQQYAAFAQQQYAAFAQQQYAAFAQQQYAAFAQQQYAAFAQQQYAAFAQQQYAAFAQQQYAAFAQQQYAAFAQQQYAAFAQQQYAAFAQQQYAAFAQQQYAAFAQQQYAAFAQQQYAAFAQQQYAAFAQQQYAAFAQQQYAAFAQQQYAAFAQQQYAAFAQQQYAAFAQQQYAAFAQQQYAAFAQQQYAAFAQQQYAAFAQQQYAAFAQQQYAAFAQQQYAAFAQQQYAAFAQQQYAAFAQQQYAAFAQQQYAAFAQQQYAAFAQQQYAAFAQQQYAAFAQQQYAAFAQQQYAAFAQQQYAAFAQQQYAAFAQQQYAAFAQQQYAAFAQQQYAAFAQQQYAAFAQQQYAAFAQQQYAAFCQbTrILrroolRUVLS5DRgwoHz+9ddfz+jRo7PrrrvmXe96V0aMGJGlS5e2uY/Fixdn2LBh6datW3r37p1zzz03a9asaTMze/bsHHbYYamqqso+++yTKVOmbI2nBwAA7OS26SBLkgMOOCDPP/98+Xb//feXz40dOzY///nPc8cdd2TOnDlZsmRJPvvZz5bPr127NsOGDUtra2vmzZuXW265JVOmTMmECRPKM88880yGDRuWo48+OvPnz88555yT0047Lffcc89WfZ4AAMDOp1PRC7ydTp06pba2doPjK1asyI033pipU6fmmGOOSZLcfPPN2X///fPAAw/kqKOOyi9/+cv89re/zb333ps+ffrk0EMPzaWXXprzzz8/F110USorKzN58uT0798/V155ZZJk//33z/3335+rr746DQ0NW/W5AgAAO5dt/hWy3//+9+nXr1/22muvnHzyyVm8eHGSpKmpKatXr86QIUPKswMGDMjuu++exsbGJEljY2MOOuig9OnTpzzT0NCQlpaWPPHEE+WZN97H+pn19/FmVq1alZaWljY3AACA9timg2zw4MGZMmVKZsyYkRtuuCHPPPNMPvShD+WVV15Jc3NzKisr06NHjzbf06dPnzQ3NydJmpub28TY+vPrz73VTEtLS1577bU33e2yyy5LTU1N+VZXV/e3Pl0AAGAns03/yuLHP/7x8v8++OCDM3jw4Oyxxx65/fbb07Vr1wI3S8aPH59x48aVv25paRFlAABAu2zTr5D9tR49emTffffNU089ldra2rS2tmb58uVtZpYuXVp+z1ltbe0Gn7q4/uu3m6murn7L6Kuqqkp1dXWbGwAAQHtsV0H26quv5g9/+EP69u2bQYMGpXPnzpk1a1b5/KJFi7J48eLU19cnSerr6/P4449n2bJl5ZmZM2emuro6AwcOLM+88T7Wz6y/DwAAgC1lmw6yr371q5kzZ06effbZzJs3L5/5zGfSsWPHnHjiiampqcmoUaMybty4/OpXv0pTU1NOPfXU1NfX56ijjkqSDB06NAMHDswpp5yS3/zmN7nnnnty4YUXZvTo0amqqkqSnHnmmXn66adz3nnnZeHChbn++utz++23Z+zYsUU+dQAAYCewTb+H7I9//GNOPPHE/PnPf8573vOefPCDH8wDDzyQ97znPUmSq6++Oh06dMiIESOyatWqNDQ05Prrry9/f8eOHTNt2rScddZZqa+vzy677JKRI0fmkksuKc/0798/06dPz9ixY3Pttddmt912yw9/+EMfeQ8AAGxx23SQ3XrrrW95vkuXLpk0aVImTZr0pjN77LFH7r777re8n49+9KN59NFHN2lHAACATbVN/8oiAADAjkyQAQAAFESQAQAAFESQAQAAFESQAQAAFESQAQAAFESQAQAAFESQAQAAFESQAQAAFESQAQAAFESQAQAAFESQAQAAFESQAQAAFESQAQAAFESQAQAAFESQAQAAFESQAQAAFESQAQAAFESQAQAAFESQAQAAFESQAQAAFESQAQAAFESQAQAAFESQAQAAFESQAQAAFESQAQAAFESQAQAAFESQAQAAFESQAQAAFESQAQAAFESQAQAAFESQAQAAFESQAQAAFESQAQAAFESQAQAAFESQAQAAFESQAQAAFKRT0QuwZSxevDgvvvhi0Wu8rV69emX33Xcveg0AACiEINsBLV68OAMG7J/XXvtL0au8ra5du2XhwidFGQAAOyVBtgN68cUX89prf8ngL01Mdd89i17nTbU8/2wevOnivPjii4IMAICdkiDbgVX33TM9d9+v6DUAAIA34UM9AAAACiLIAAAACiLIAAAACiLIAAAACiLIAAAACiLIAAAACiLIAAAACiLIAAAACiLIAAAACiLIAAAACiLIAAAACiLIAAAACiLIAAAACiLIAAAACiLIAAAACiLIAAAACiLIAAAACiLIAAAACiLIAAAACiLIAAAACiLI/sqkSZOy5557pkuXLhk8eHAeeuiholcCAAB2UILsDW677baMGzcuEydOzCOPPJJDDjkkDQ0NWbZsWdGrAQAAOyBB9gZXXXVVTj/99Jx66qkZOHBgJk+enG7duuWmm24qejUAAGAH1KnoBbYVra2taWpqyvjx48vHOnTokCFDhqSxsXGD+VWrVmXVqlXlr1esWJEkaWlp2fLLvo1XX301SfLS/12UNateK3ibN9fSvDhJ0tTUVN55W9ShQ4esW7eu6DXe1vaw5/awY7J97GnHzWd72HN72DHZPvbcHnZMto89t4cdk+1jz219x0WLFiXZfv5t+eqrrxb+b/L1j18qld52tqL0TqZ2AkuWLMl73/vezJs3L/X19eXj5513XubMmZMHH3ywzfxFF12Uiy++eGuvCQAAbCeee+657Lbbbm854xWyTTR+/PiMGzeu/PW6devy0ksvZdddd01FRUWBm/1vkdfV1eW5555LdXV1obuwfXDN0F6uGdrLNUN7uWZor23pmimVSnnllVfSr1+/t50VZP9Pr1690rFjxyxdurTN8aVLl6a2tnaD+aqqqlRVVbU51qNHjy25YrtVV1cXfjGyfXHN0F6uGdrLNUN7uWZor23lmqmpqXlHcz7U4/+prKzMoEGDMmvWrPKxdevWZdasWW1+hREAAGBz8QrZG4wbNy4jR47M4YcfniOPPDLXXHNNVq5cmVNPPbXo1QAAgB2QIHuD448/Pi+88EImTJiQ5ubmHHrooZkxY0b69OlT9GrtUlVVlYkTJ27wK5XwZlwztJdrhvZyzdBerhnaa3u9ZnzKIgAAQEG8hwwAAKAgggwAAKAgggwAAKAgggwAAKAggmw7NWnSpOy5557p0qVLBg8enIceeugt5++4444MGDAgXbp0yUEHHZS77757K23KtqI918wPfvCDfOhDH8q73/3uvPvd786QIUPe9hpjx9Pe/86sd+utt6aioiLDhw/fsguyzWnvNbN8+fKMHj06ffv2TVVVVfbdd1///7STae81c80112S//fZL165dU1dXl7Fjx+b111/fSttSpLlz5+ZTn/pU+vXrl4qKitx1111v+z2zZ8/OYYcdlqqqquyzzz6ZMmXKFt9zUwiy7dBtt92WcePGZeLEiXnkkUdyyCGHpKGhIcuWLdvo/Lx583LiiSdm1KhRefTRRzN8+PAMHz48CxYs2MqbU5T2XjOzZ8/OiSeemF/96ldpbGxMXV1dhg4dmj/96U9beXOK0t5rZr1nn302X/3qV/OhD31oK23KtqK910xra2s+9rGP5dlnn81//Md/ZNGiRfnBD36Q9773vVt5c4rS3mtm6tSpueCCCzJx4sQ8+eSTufHGG3Pbbbfla1/72lbenCKsXLkyhxxySCZNmvSO5p955pkMGzYsRx99dObPn59zzjknp512Wu65554tvOkmKLHdOfLII0ujR48uf7127dpSv379SpdddtlG5//hH/6hNGzYsDbHBg8eXPryl7+8Rfdk29Hea+avrVmzptS9e/fSLbfcsqVWZBuzKdfMmjVrSu9///tLP/zhD0sjR44sffrTn94Km7KtaO81c8MNN5T22muvUmtr69ZakW1Me6+Z0aNHl4455pg2x8aNG1f6wAc+sEX3ZNuTpHTnnXe+5cx5551XOuCAA9ocO/7440sNDQ1bcLNN4xWy7Uxra2uampoyZMiQ8rEOHTpkyJAhaWxs3Oj3NDY2tplPkoaGhjedZ8eyKdfMX/vLX/6S1atXp2fPnltqTbYhm3rNXHLJJendu3dGjRq1NdZkG7Ip18zPfvaz1NfXZ/To0enTp08OPPDA/Nu//VvWrl27tdamQJtyzbz//e9PU1NT+dcan3766dx99935xCc+sVV2ZvuyPf37t1PRC9A+L774YtauXZs+ffq0Od6nT58sXLhwo9/T3Ny80fnm5uYttifbjk25Zv7a+eefn379+m3wHzZ2TJtyzdx///258cYbM3/+/K2wIduaTblmnn766dx33305+eSTc/fdd+epp57KP/3TP2X16tWZOHHi1libAm3KNXPSSSflxRdfzAc/+MGUSqWsWbMmZ555pl9ZZKPe7N+/LS0tee2119K1a9eCNtuQV8iAt3T55Zfn1ltvzZ133pkuXboUvQ7boFdeeSWnnHJKfvCDH6RXr15Fr8N2Yt26dendu3e+//3vZ9CgQTn++OPz9a9/PZMnTy56NbZRs2fPzr/927/l+uuvzyOPPJKf/vSnmT59ei699NKiV4O/iVfItjO9evVKx44ds3Tp0jbHly5dmtra2o1+T21tbbvm2bFsyjWz3ne+851cfvnluffee3PwwQdvyTXZhrT3mvnDH/6QZ599Np/61KfKx9atW5ck6dSpUxYtWpS99957yy5NoTblvzN9+/ZN586d07Fjx/Kx/fffP83NzWltbU1lZeUW3Zlibco1841vfCOnnHJKTjvttCTJQQcdlJUrV+aMM87I17/+9XTo4HUG/n9v9u/f6urqberVscQrZNudysrKDBo0KLNmzSofW7duXWbNmpX6+vqNfk99fX2b+SSZOXPmm86zY9mUayZJrrjiilx66aWZMWNGDj/88K2xKtuI9l4zAwYMyOOPP5758+eXb3//939f/mSrurq6rbk+BdiU/8584AMfyFNPPVWO9yT53e9+l759+4qxncCmXDN/+ctfNoiu9UFfKpW23LJsl7arf/8W/akitN+tt95aqqqqKk2ZMqX029/+tnTGGWeUevToUWpubi6VSqXSKaecUrrgggvK8//zP/9T6tSpU+k73/lO6cknnyxNnDix1Llz59Ljjz9e1FNgK2vvNXP55ZeXKisrS//xH/9Rev7558u3V155painwFbW3mvmr/mUxZ1Pe6+ZxYsXl7p3714aM2ZMadGiRaVp06aVevfuXfrXf/3Xop4CW1l7r5mJEyeWunfvXvrJT35Sevrpp0u//OUvS3vvvXfpH/7hH4p6CmxFr7zySunRRx8tPfroo6Ukpauuuqr06KOPlv7v//2/pVKpVLrgggtKp5xySnn+6aefLnXr1q107rnnlp588snSpEmTSh07dizNmDGjqKfwpgTZdup73/teaffddy9VVlaWjjzyyNIDDzxQPveRj3ykNHLkyDbzt99+e2nfffctVVZWlg444IDS9OnTt/LGFK0918wee+xRSrLBbeLEiVt/cQrT3v/OvJEg2zm195qZN29eafDgwaWqqqrSXnvtVfrmN79ZWrNmzVbemiK155pZvXp16aKLLirtvffepS5dupTq6upK//RP/1R6+eWXt/7ibHW/+tWvNvpvk/XXyMiRI0sf+chHNvieQw89tFRZWVnaa6+9SjfffPNW3/udqCiVvMYLAABQBO8hAwAAKIggAwAAKIggAwAAKIggAwAAKIggAwAAKIggAwAAKIggAwAAKIggAwAAKIggA2Cn09jYmI4dO2bYsGEbnGttbc0VV1yRQw45JN26dUuvXr3ygQ98IDfffHNWr16dioqKt7xddNFFefbZZ1NRUZH58+e3ue9bbrklRxxxRLp165bu3bvnIx/5SKZNm9ZmZvbs2amoqMgBBxyQtWvXtjnXo0ePTJkyZXP/OAAokCADYKdz44035uyzz87cuXOzZMmS8vHW1tY0NDTk8ssvzxlnnJF58+bloYceyujRo/O9730vTzzxRJ5//vny7Zprrkl1dXWbY1/96lc3+phf/epX8+UvfznHH398HnvssTz00EP54Ac/mE9/+tO57rrrNph/+umn86Mf/WiL/QwA2DZ0KnoBANiaXn311dx22215+OGH09zcnClTpuRrX/takuSaa67J3Llz8/DDD+fv/u7vyt+z11575fOf/3xaW1uzyy67lI/X1NSkoqIitbW1bR7jxRdfbPP1Aw88kCuvvDLf/e53c/bZZ5ePf/Ob38zrr7+ecePG5dOf/nTq6urK584+++xMnDgxJ510UqqqqjbrzwCAbYdXyADYqdx+++0ZMGBA9ttvv3zhC1/ITTfdlFKplCT58Y9/nCFDhrSJsfU6d+7cJsba4yc/+Une9a535ctf/vIG5/7lX/4lq1evzn/+53+2OX7OOedkzZo1+d73vrdJjwnA9kGQAbBTufHGG/OFL3whSXLcccdlxYoVmTNnTpLk97//fQYMGLDZH/N3v/td9t5771RWVm5wrl+/fqmurs7vfve7Nse7deuWiRMn5rLLLsuKFSs2+04AbBsEGQA7jUWLFuWhhx7KiSeemCTp1KlTjj/++Nx4441JUn6lbEvYlPseNWpUdt1113zrW9/aAhsBsC0QZADsNG688casWbMm/fr1S6dOndKpU6fccMMN+c///M+sWLEi++67bxYuXLjZH3fffffN008/ndbW1g3OLVmyJC0tLdl33303ONepU6d885vfzLXXXtvmw0cA2HEIMgB2CmvWrMmPfvSjXHnllZk/f3759pvf/Cb9+vXLT37yk5x00km599578+ijj27w/atXr87KlSs36bFPOOGEvPrqq/n3f//3Dc595zvfSefOnTNixIiNfu/nP//5HHDAAbn44os36bEB2Lb5lEUAdgrTpk3Lyy+/nFGjRqWmpqbNuREjRuTGG2/M/fffn+nTp+fYY4/NpZdemg9+8IPp3r17Hn744XzrW9/KjTfemEMPPbTdj11fX5+vfOUrOffcc9Pa2prhw4dn9erV+T//5//k2muvzTXXXNPmExb/2uWXX56GhoZ2Py4A2z6vkAGwU7jxxhszZMiQDWIs+d8ge/jhh7No0aLMnDkz5513Xv793/89Rx11VI444oh897vfzT//8z/nwAMP3OTHv+aaa3L99dfnJz/5SQ488MAcfvjhmTt3bu666642H4W/Mcccc0yOOeaYrFmzZpMfH4BtU0VpS76DGQAAgDflFTIAAICCCDIAAICCCDIAAICCCDIAAICCCDIAAICCCDIAAICCCDIAAICCCDIAAICCCDIAAICCCDIAAICCCDIAAICCCDIAAICC/H/IZQCpguT6gAAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 1000x600 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# label distribution\n",
    "fig, ax = plt.subplots(1, 1, figsize=(10, 6))\n",
    "sns.histplot(y, ax=ax)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "cd1a5db3",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-10-05T18:02:34.463213Z",
     "iopub.status.busy": "2024-10-05T18:02:34.462736Z",
     "iopub.status.idle": "2024-10-05T18:03:20.311896Z",
     "shell.execute_reply": "2024-10-05T18:03:20.310608Z"
    },
    "papermill": {
     "duration": 45.881771,
     "end_time": "2024-10-05T18:03:20.330415",
     "exception": false,
     "start_time": "2024-10-05T18:02:34.448644",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAB40AAAbgCAYAAAB038WYAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuNSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/xnp5ZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzde1xVZdr/8S8gbETd4CFAE5VyUslTaeqe0jwgSNRk2jOVTpqZjg42o0xWzpjHGh3LzAq1RhNn0iltOoopqKmZaMpIeSinHH2sR8FOgidgC+v3Rz927jjLYW/W+rxfL166133ve133uhboui/W2j6GYRgCAAAAAAAAAAAAAFiSr6cDAAAAAAAAAAAAAAB4DkVjAAAAAAAAAAAAALAwisYAAAAAAAAAAAAAYGEUjQEAAAAAAAAAAADAwigaAwAAAAAAAAAAAICFUTQGAAAAAAAAAAAAAAujaAwAAAAAAAAAAAAAFkbRGAAAAAAAAAAAAAAsjKIxAAAAAAAAAAAAAFgYRWMAAAAAAAAAAAAAsDCKxgAAr5ScnCwfHx/XV4MGDXT11VfrgQce0P/93/+59e3fv79b38u/Onbs6Nb3wIEDuvvuu9W2bVsFBgbq6quv1uDBg/XCCy+UiMHpdOr555/XTTfdpCZNmqhx48a66aab9Pzzz8vpdJbo7+Pjo0mTJpU6nzfeeEM+Pj7atm2ba9sDDzzgFqvNZtN1112nGTNmKC8vr8QYhYWFWrlypfr3769mzZrJZrOpXbt2GjNmjPbt21fmsfv51+7du8s99gAAAAAA4EeXX2Pv3LmzRLthGIqIiJCPj49uv/12t7b8/Hy98MILuuWWW9S0aVMFBASoVatW+tWvfqV//vOfKiwsdPU9fvy427W7r6+vmjVrpri4OKWnp1c57uLxnnnmGde2bdu2lViHCAsLU//+/fWXv/xF33zzTZX3AwAwjwaeDgAAgPLMmTNHkZGRysvL0+7du5WcnKydO3fq4MGDCgwMdPVr3bq15s2bV+L9wcHBrr/v2rVLAwYMUJs2bTRu3DiFh4frq6++0u7du7V48WI9/PDDrr7nz59XfHy8tm/frttvv10PPPCAfH19tXHjRv3hD3/Qm2++qZSUFDVq1Kha87PZbFq+fLkkKScnR++8847mzp2ro0ePavXq1a5+Fy9e1LBhw7Rx40b169dPf/rTn9SsWTMdP35ca9eu1apVq3TixAm1bt26xLH7ufbt21crZgAAAAAArCYwMFBr1qzRLbfc4rZ9+/bt+vrrr2Wz2dy2f/PNN4qLi1NGRoZiY2M1ffp0NWvWTFlZWdq8ebNGjBihL7/8Uk888YTb++677z7ddtttKiws1H/+8x8tWbJEAwYM0N69e9WlS5camcvvf/973XTTTSosLNQ333yjXbt2aebMmXr22We1du1aDRw4sEb2AwCoXygaAwC8WlxcnHr27ClJeuihh9SiRQv99a9/1bvvvqtf//rXrn7BwcH6zW9+U+5YTz31lIKDg7V3716FhIS4tZ0+fdrtdWJiorZv364XXnjB7e7hiRMnKikpSZMmTdIjjzyipUuXVmt+DRo0cIv7d7/7nX75y1/qn//8p5599lmFhYVJkqZOnaqNGzdq0aJFmjx5stsYM2fO1KJFi0qMffmxAwAAAAAAV+62227TunXr9Pzzz6tBg5+W1desWaMePXro22+/det///33a//+/frXv/6lYcOGubVNmzZN+/bt05EjR0rs58Ybb3RbJ+jbt6/i4uK0dOlSLVmypEbm0rdvX919991u2z755BPFxMRo+PDhOnz4sFq2bFkj+wIA1B88nhoAUK/07dtXknT06NEqv/fo0aO6/vrrSxSMJSk0NNT196+//lorVqzQwIEDS33cdEJCggYMGKDly5fr66+/rnIc5fHx8dEtt9wiwzD03//+1xXPSy+9pMGDB5coGEuSn5+fHnnkEbe7jAEAAAAAQM2577779N133yktLc21raCgQG+88YZGjBjh1jc9PV2bNm3S+PHjSxSMi/Xs2VMjR46scL/VWQepim7duum5557TmTNn9OKLL9bqvgAA3omiMQCgXjl+/LgkqWnTpm7bCwsL9e2335b4On/+vKtP27ZtlZGRoYMHD5a7j/fff1+FhYUaNWpUmX1GjRqlS5cuaePGjVc+mTL8fI7vv/++Ll26pPvvv79K4+Tk5JQ4Ht99911NhwsAAAAAgOm1a9dODodD//znP13b3n//feXk5Ojee+916/vee+9JUoVPRKuMstZBasPdd9+thg0bKjU1tdb3BQDwPjyeGgDg1YoLn3l5edqzZ49mz54tm82m22+/3a3f559/rquuuqrE+3/7299q2bJlkqRHHnlEcXFx6t69u3r16qW+fftq0KBBGjBggPz9/V3vOXz4sKQff8u2LMVtn332WbXnWPwIq5ycHL399tv617/+pc6dO6tDhw5u+6jqZxdFR0eX2Gaz2ZSXl1fNiAEAAAAAsJ4RI0Zo2rRpunjxoho2bKjVq1fr1ltvVatWrdz6ff7555Kkzp07u23Py8vTuXPnXK8bNGhQ4mloFy5c0LfffqvCwkJ98cUXSkxMlKQSj5OuDf7+/rruuutq/a5mAIB3omgMAPBqPy98tmvXTq+++mqJRzG3a9dOf/vb30q8//J+gwcPVnp6uubNm6dNmzYpPT1dCxYs0FVXXaXly5frV7/6lSTp7NmzkqQmTZqUGVdxW25u7pVN7P87f/58iWL3LbfcolWrVsnHx8dtH+XFU5qkpCRdd911btv8/PyqES0AAAAAANb161//WpMnT9b69es1ZMgQrV+/Xs8//3yJfsXX8Y0bN3bbvmzZMk2ZMsX1+vrrry/xNLSZM2dq5syZrteNGzfWwoUL66RoXLy/4nURAIC1UDQGAHi14sJnTk6OXnnlFe3YsUM2m61Ev0aNGpV6Z+3P3XTTTXrzzTdVUFCgTz75RG+99ZYWLVqku+++W5mZmYqKinIVZ8u7SKpMYbk0xYXgYoGBga7HVn399ddasGCBTp8+rYYNG7r62O32CuMpTa9evdSzZ88qvQcAAAAAAJTuqquuUnR0tNasWaMLFy6osLCw1GJu8VrBuXPnFBwc7No+fPhw193Hf/zjH1VYWFjivePHj9f//M//KC8vT1u3btXzzz9far/acu7cuSqvdQAAzIGiMQDAq11e+Bw6dKhuueUWjRgxQkeOHCnxG7tVERAQoJtuukk33XSTrrvuOo0ZM0br1q3TzJkz1alTJ0nSp59+qu7du5f6/k8//VSSFBUV5dpms9l08eLFUvtfuHBB0o9F4sv5+fm5FbtjY2PVsWNH/fa3v9W7774rSerYsaMk6cCBA2XGAwAAAAAAat+IESM0btw4ZWVlKS4ursTjpaWfruMPHjyom2++2bU9IiJCERERkn78jOLij6u63C9+8QvXOsHtt98uPz8/Pf744xowYECt/2K40+nUf/7znxKP1QYAWIOvpwMAAKCy/Pz8NG/ePJ08eVIvvvhijY1bfNF16tQpSVJcXJz8/Pz0j3/8o8z3/P3vf1eDBg00ZMgQ17a2bdvqyJEjpfYv3t62bdtyY2nZsqWmTJmi9957T7t373aL59VXX638pAAAAAAAQI2766675Ovrq927d2vEiBGl9rn99tslSatXr672/v785z+rSZMmmj59erXHqsgbb7yhixcvKjY2ttb3BQDwPhSNAQD1Sv/+/dWrVy8999xzysvLq9J7P/jgAxmGUWL7hg0bJEkdOnSQ9ONv/o4ZM0abN2/W0qVLS/RftmyZtm7dqrFjx7p9ZvJtt92m3bt3KyMjw63/mTNntHr1anXv3l3h4eEVxvnwww8rKChI8+fPd8Uzbtw4paam6oUXXijRv6ioSAsXLtTXX39d4dgAAAAAAODKNW7cWEuXLtWsWbN0xx13lNrn5ptv1uDBg/Xyyy/rnXfeKbVPaesTpQkJCdFvf/tbbdq0SZmZmVcadoU++eQTTZ48WU2bNlVCQkKt7QcA4L14PDUAoN6ZOnWq/ud//kfJycmaMGGCJCknJ6fMO3F/85vfSPqxGHvhwgXddddd6tixowoKCrRr1y69/vrrateuncaMGeN6z6JFi/T555/rd7/7nTZu3Oi6o3jTpk165513dOutt2rhwoVu+3n88ce1bt069evXT7/97W/VsWNHnTx5UsnJyTp16pRWrlxZqfk1b95cY8aM0ZIlS/TZZ5+pU6dOWrhwoY4eParf//73evPNN3X77beradOmOnHihNatW6fPP/9c9957r9s477//vj7//PMS4//yl7/UNddcU6lYAAAAAACAu9GjR1fY59VXX9WQIUM0dOhQxcXFKTo6Wk2bNlVWVpY2b96sHTt2KC4urlL7+8Mf/qDnnntO8+fP12uvvVbd8PXhhx8qLy9PhYWF+u677/TRRx/p3XffVXBwsN56661K/cI7AMB8KBoDAOqdYcOG6dprr9UzzzyjcePGSZK+/vpr3X///aX2Ly4aP/PMM1q3bp02bNigl19+WQUFBWrTpo1+97vfafr06W6fQ9S4cWNt2bJFS5Ys0auvvqqpU6fKMAx17NhRzz33nH73u9/J39/fbT9hYWHas2ePZs2apbVr1yo7O1t2u12//OUv9frrr6t3796VnmNiYqKWLVumv/71r0pOTlZQUJDef/99JScna9WqVZo7d64uXLigVq1aaeDAgVq9erWuvvpqtzFmzJhR6tgrV66kaAwAAAAAQC0KDQ3Vrl279NJLL+n111/X7NmzdeHC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oW/fvrr77rslSWPGjNF1112n3//+91q1apWmTZtWqTEmTpyoxx57TA0bNtSkSZMoGgMAAAAAag3rDdZYbwgICNBHH32kX/7yl65t48aNU7t27VyF4+jo6FqLHwDwIx5PDQCocX379pUkHT16VJJ08eJFPf3007ruuutcv1V7uTvuuEOjR4/Wxo0btXv37jqNtSKBgYG66aabdPbsWZ0+fdq1/V//+pcOHjyoxx9/3O0CTpL8/Pz00ksvKSQkRLNmzarjiCtv4MCBkqRjx45V+j1hYWFq2LBhbYUEAAAAAECZWG8w53pDQECAW8G42F133SVJ+uyzz2ouOABAmSgaAwBq3PHjxyVJTZs2lSTt3LlTP/zwg0aMGKEGDUp/yMWoUaMkqdTP5qmM77//Xt9++63b15kzZ65orJ8r/mygyx899d5770n6Ke6fCw4O1p133qnPP/9cX375ZY3EUdOKL7KbN2/u4UgAAAAAAKgY6w3WWm8o/tzomrjTGwBQMR5PDQCotpycHH377bfKy8vTnj17NHv2bNlsNt1+++2SpMOHD0uSunXrVuYYxW1X+tujHTp0KHXb559/XqVxCgsL9e2330qSvvvuO61YsUL79u1TfHy82x22hw8fVnBwsNq2bVvmWJfPqX379lWKozacPXtW3377rZxOp/bv368//OEP8vHx0fDhwz0dGgAAAAAAJbDeUDqrrDcsWLBAdrtdcXFxNRQpAKA8FI0BANX288+VadeunV599VW1bt1a0o8XD5LUpEmTMscobsvNzb2iGP71r3/Jbre7bWvUqFGVx/n888911VVXuW371a9+pRUrVrhtO3v2bLnzkao/p5r24IMPur2+6qqrtGrVKtfnQwEAAAAA4E1YbyidFdYb/vKXv2jz5s1asmSJ253YAIDaQ9EYAFBtSUlJuu6665STk6NXXnlFO3bskM1mc7UXX8wUX8yVpjIXeuXp169fjTyuqF27dvrb3/6moqIiHT16VE899ZS++eYbBQYGuvVr0qSJ6zeEy1LdOVWHj49PiW0zZsxQ37595efnpxYtWqhTp05lPr4LAAAAAABPY72hdGZfb3j99dc1ffp0jR07VhMnTqxOuACAKmClGABQbb169XL99ujQoUN1yy23aMSIETpy5IgaN26sTp06SZI+/fRTDR06tNQxPv30U0lSVFRUncRclkaN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CgoK0rRp0y5aX1BQYLb/1ltvXTTmzjvvVFBQULU5qumYAAAAAADQ0AJlL+P713Gpn+uvv97nnF999ZXPZ/4r/Vx4rl27dl2yPxfuU1zs5/nnn7/iNQEAGpdm/u4AAKDpmT17tuLj43X27Flt375dubm52rp1q/bt26fw8HBJUmVlpUaMGKHly5fr7rvvVlZWliIiIvTXv/5Vs2bN0ooVK7R+/Xo5HI6r6sOiRYvUsmXLauVRUVG1aqdDhw7Kzs6WJJ06dUoHDx7Uu+++q7feeks//elP9dZbbyk0NNTnNb169dIvf/nLam3FxsZesp8nT55Ufn6+nnvuOW3cuFEffvih/ud//scn9g9/+INcLle18oSEBJ05c8Y8nj17toYPH25+mLsSj8ejDz74QNdff73efvttPf/885d8bXh4uPLy8vSzn/3Mp/yLL77Qtm3bzPn9vtqMCQAAAAAADa2p72X079+/2n7B448/rjvuuEPjx483yy7WfkJCQrXXTp8+XS1bttQzzzxTw95f3MMPP6x77723Wvmtt956Te0CABoeSWMAQK0NHTpUt912m6TvPqC0a9dOv/3tb/X+++/rpz/9qSRp7ty5Wr58uZ588km98MIL5mvHjx+vn/70pxo2bJgeeeQR/eUvf7mqPvznf/6n2rVrd83XEhkZWS1B+vzzz+vnP/+5Fi5cqOuvv16//e1vfep/8IMfVHtNTfo5YcIEpaWl6d1339X27durtbF9+3a5XK6Ltv3FF19I+i45W1xcrJUrV2r48OE16sOf/vQnVVZW6o033tA999yjLVu26Ec/+tFFY++99169//77+uqrr3zGNy8vTw6HQzfddJO++eabaq+rzZgAAAAAANDQmvpexg033KAbbrjBp2zChAm64YYbrvh53OFwXHTvo127dtf8Wb53797sBwBAgODx1ACAa3b33XdLkg4dOiRJOnPmjF544QXdfPPN5l28F7rvvvs0ZswYrV27Vtu3b2/QvtZESEiIXn75ZSUmJuqVV17RiRMn6qzte+65R5J0+PDhq3r9Qw89pJtvvlmzZ8+WYRg1es3SpUs1ePBgDRw4UAkJCVq6dOklY++//37ZbDatWLHCpzwvL08//elPFRISclX9BgAAAACgMQm0vQwAAK4VSWMAwDWrugu2devWkqStW7fqm2++0YgRI9Ss2cUfajF6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fjCeeuopIz8/3zh8+LDx97//3fif//kfo127dsaZM2fMOpgHDd+jjz5qhIaGGp988olx9OhR8+f06dNmTH16L6ipLbgyNc2DQ4cOGdOnTzd27txpHD582Pjb3/5m/OIXvzD69u1r1sE88AzPPvus8emnnxqHDx82du3aZTz77LOGj4+PkZeXZxgGrwcAGpZLfd6tqKgw7rrrLuP66683ioqKHN7/ysvLDcMwjK1btxpz5swxioqKjC+//NJ49913jRYtWhijR48298Hn3apxruEeNZ3rG4ZhnDhxwggODjYWLVpU6fnM+SvHeZV71NTvJ06cMOLi4oyuXbsahw4dcog5e/asYRiGsXr1auPPf/6zsXv3buPgwYPGH//4RyM4ONiYOnWquR/6vTLOId2nNq83hmEYBw8eNHx8fIyPPvqoUh3M+yvD+bJnIWlchxYsWGC0bt3aCAgIMHr16mVs27bN3U1CLd1///1Gq1atjICAAOO6664z7r//fuPQoUNm+Y8//mg89thjRrNmzYzg4GDj7rvvNo4ePepQx1dffWUMGjTIaNy4sdG8eXPjySefNGw2m0PMxo0bjR49ehgBAQHGL37xC+Ott96q1Bbmkets3LjRkFTpZ8yYMYZhGMb58+eNKVOmGBEREUZgYKDRv39/48CBAw51fP/998bIkSONpk2bGiEhIcZDDz1k/PDDDw4x//znP43evXsbgYGBxnXXXWe8+uqrldqyYsUK48YbbzQCAgKMzp07G2vXrnUor01bcGUuNQ9Onz5tJCYmGi1atDD8/f2NNm3aGGPHjq30hxzMg4avqjkgyeF1uj69F9SmLbh8Nc2DI0eOGH379jXCw8ONwMBA44YbbjCefvpp48SJEw71MA8avocfftho06aNERAQYLRo0cLo37+/eQJsGLweAGhYLvV59/Dhw9W+/23cuNEwDMMoLCw04uLijNDQUCMoKMjo2LGj8corrzgkNg2Dz7tV4VzDPWo61zcMw/jTn/5kNG7c2CgtLa30fOb8leO8yj1q6vfqfickGYcPHzYMwzA++ugjo0ePHkbTpk2NJk2aGN27dzcWL15snDt3zmFf9LsjziHdpzavN4ZhGJMmTTKio6MrzWXDYN5fKc6XPYuPYRjGlXxDGQAAAAAAAAAAAADQ8HFPYwAAAAAAAAAAAADwYiSNAQAAAAAAAAAAAMCLkTQGAAAAAAAAAAAAAC9G0hgAAAAAAAAAAAAAvBhJYwAAAAAAAAAAAADwYiSNAQAAAAAAAAAAAMCLkTQGAAAAAAAAAAAAAC9G0hgAAAAAAAAAAAAAvBhJYwAAAAAAAAAAAADwYiSNAQAAAAAAAAAAAMCLkTQGAAAAAAAAAAAAAC9G0hgAAAAAAAAAAAAAvBhJYwAAAAAAAAAAAADwYiSNAQAAAAAAAAAAAMCLkTQGAAAAAAAAAAAAAC9G0hgAAAAAAAAAAAAAvBhJYwAAAAAAAAAAAADwYiSNAQAAAAAAAAAAAMCLkTQGAAAAAAAAAAAAAC9G0hgAAAAAAAAAAAAAvBhJYwAAAAAAAAAAAADwYiSNAQAAAAAAAAAAAMCLkTQGAAAAAAAAAAAAAC9G0hgAAAAAAAAAAAAAvBhJYwAAAAAAAAAAAADwYiSNAQAAAAAAAAAAAMCLkTQGAAAAAAAAAAAAAC9G0hgAAAAAAAAAAAAAvBhJYwAAAAAAAAAAAADwYiSNAQAAAAAAAAAAAMCLkTQGAAAAAAAAAAAAAC9G0hgAAAAAAAAAAAAAvBhJYwAAAAAAAAAAAADwYiSNAQAAAAAAAAAAAMCLkTQGAAAAAAAAAAAAAC9G0hgAAAAAAAAAAAAAvBhJYwAAAAAAAAAAAADwYiSNAQAAAAAAAAAAAMCLkTQGAAAAAAAAAAAAAC9G0hgAYFq2bJl8fHzMn0aNGum6667Tgw8+qP/85z+V4g3D0P/7f/9Pffv2VVhYmIKDg9W1a1dNnz5dp06dqhTfr18/denS5ZJtyMjIcGjDxT9Wq7XWx9OvX79q6/niiy8cYnv16iUfHx8tWrSoxr757LPPquyL6Oho+fj46M4773Qo8/HxUXp6uvn4q6++ko+Pj2bNmuUQ9+qrr8rHx0cff/xxlW0YPHiwQkND9e2339bq+B988EGHY27atKl+8YtfaMSIEfrrX/+q8+fPV3rOpfqsQ4cODrG7d+/WiBEj1KZNGwUFBem6667TgAEDtGDBgkr1njt3Tm+99Zb69eun8PBwBQYGqm3btnrooYe0c+fOWh0PAAAAAACXwnUNz7quAQBwrUbubgAAoP6ZPn26YmJidObMGW3btk3Lli3TZ599pj179igoKEjST0nAUaNGacWKFerTp48yMjIUHByszZs3a9q0aVq5cqX+/ve/KyIi4orasGjRIjVt2rTS9rCwsMuq5/rrr1dmZmal7VFRUeb/Dx48qB07dqht27bKzs7Wo48+Wm19QUFBysnJUe/evR22f/rpp/rmm28UGBh4We270JNPPqmcnBw99thj2rNnjxo3bmyWrVy5Uh999JEWLlzo0PaaBAYG6o033pAk/fjjj/r666/1v//7vxoxYoT69eunv/3tbwoJCXF4TnV9Fhoaav5/69atuu2229S6dWuNHTtWkZGR+ve//61t27Zp3rx5evzxx83YH3/8Uffcc49yc3PVt29fPffccwoPD9dXX32lFStW6O2339aRI0d0/fXX1/q4AAAAAACoDtc1POe6BgDAdUgaAwAqGTRokHr27ClJ+u1vf6vmzZtrxowZWr16te677z5JUlZWllasWKGnnnpKM2fONJ+blpam++67T8OGDdODDz6ojz766IraMGLECDVv3vyqjyU0NFS/+c1vLhnz7rvvqmXLlnrttdc0YsQIffXVV2rbtm2VsYMHD9bKlSs1f/58NWr089toTk6OYmNj9d13311xW/39/bVkyRLdeuutevHFF/XKK69Ikn744QeNHz9eN998sx555JHLqrNRo0aVjv+ll17Sq6++qkmTJmns2LFavny5Q3lt+uzll19WaGioduzYUemE99ixYw6Pn376aeXm5mrOnDkaP368Q9kLL7ygOXPmXNYxAQAAAABwKVzX8JzrGgAA12F5agBAjfr06SNJ+vLLLyX99M3RmTNn6sYbb6zyr12HDBmiMWPGKDc3V9u2bXNpW69ETk6ORowYoTvvvFOhoaHKycmpNnbkyJH6/vvvZbFYzG0VFRV6//33NWrUqKtui/0EatasWdq3b58kafLkyTp27JiWLFkiX1/nvHU/++yzSkxM1MqVK/Wvf/3rsp//5ZdfqnPnzlX+hXTLli3N/3/zzTf605/+pAEDBlRKGEuSn5+fnnrqKb5lDAAAAACoM1zX+JmnXNcAADgfr9AAgBp99dVXkqRmzZpJkj777DMdP35co0aNcvir1AuNHj1akrRmzZor2mdJSYm+++47h5/S0tLLrufcuXOV6jl58qRZXlBQoEOHDmnkyJEKCAjQPffco+zs7Grra9u2reLj4/WXv/zF3PbRRx/pxIkTSk5Ovuz2VSUzM1MtWrTQ7373OxUWFmrhwoV66qmn1LVrV6fUb/fAAw/IMAyHE0Wp6j777rvvHO7n1KZNGxUWFmrPnj2X3MdHH32ks2fP6oEHHnBq2wEAAAAAqC2ua/zMk65rAACci6QxAKCSEydO6LvvvtM333yjv/71r5o2bZoCAwN15513SpL5l6Ldu3evtg572f79+6+oDe3bt1eLFi0cfm6++ebLrueLL76oVE96erpZ/u677yo6Olq33nqrJCk5OVn79u1TUVFRtXWOGjVKq1at0o8//ihJys7O1q9//Wun3ZMnJCRE8+fP12effabExES1adNGU6dOdUrdF+rSpYukn//S2q6qPmvRooWefPJJM+app57S6dOn1aNHD91yyy2aOHGi8vLyZLPZHOqyjz8nhgAAAAAAV+G6hndc1wAAOBf3NAYAVJKQkODwuG3btnr33XfNJYR/+OEHSdI111xTbR32srKysitqw1//+leFhIQ4bGvSpMll19O2bVv9+c9/dthmPwk6e/asli9frjFjxsjHx0eSdPvtt6tly5bKzs5Wjx49qqzzvvvu0/jx47VmzRoNHDhQa9as0fz58y+7bZcyfPhwDR48WOvWrVN2drYaN27s1PolqWnTppJ+Hk+7qvpMksMS0gMGDFB+fr4yMzP18ccfKz8/X1lZWWrRooXeeOMN3XXXXZJ+Hv9LzRUAAAAAAJyJ6xrecV0DAOBcJI0BAJUsXLhQN954o06cOKGlS5dq06ZNCgwMNMvtJ04XJxsvVJsTsEvp27evmjdvfkXPvVCTJk0qnSza5eXl6b///a969eqlQ4cOmdtvu+02/eUvf9GMGTOqvNdOixYtlJCQoJycHJ0+fVrnzp3TiBEjrrqtF/vVr36ldevWqWfPnk6vW5K5nNXFY3SpPru4fR988IEqKir0z3/+Ux9++KHmzJmjESNGqKioSJ06dTJPkC81VwAAAAAAcCaua3jHdQ0AgHORNAYAVNKrVy/zA/2wYcPUu3dvjRo1SgcOHFDTpk3VsWNHSdKuXbs0bNiwKuvYtWuXJKlTp04uafOVsN/j57777quy/NNPP9Vtt91WZdmoUaM0duxYWa1WDRo0SGFhYXXVzDpjvx/xDTfccFX1BAQE6Fe/+pV+9atf6cYbb9RDDz2klStX6oUXXlCHDh0kSbt37672L5wBAAAAAHAmrmv8xNOvawAAnIt7GgMALsnPz0+ZmZn69ttv9frrr0uSevfurbCwMOXk5OjcuXNVPu+dd96RJPN+QfXNqVOn9Le//U3333+/Vq5cWemnVatW5slXVe6++275+vpq27ZtGjVqlAtb7jz/7//9P/n4+GjAgAFOq9N+Un706FFJ0qBBg+Tn56d3333XafsAAAAAAKC2uK5RNU+4rgEAcC6SxgCAGvXr10+9evXS3LlzdebMGQUHB+upp57SgQMH9Pzzz1eKX7t2rZYtW6akpCTdfPPNbmhxzT788EOdOnVK48aN04gRIyr93HnnnfrrX/+q8vLyKp/ftGlTLVq0SBkZGRoyZIiLW3/1Xn31VeXl5en+++9Xu3btLvv5GzdulGEYlbavW7dOktS+fXtJUnR0tMaOHau8vDwtWLCgUvz58+f12muv6ZtvvrnsNgAAAAAAUBtc16isoV/XAAA4H8tTAwBq5emnn9a9996rZcuW6ZFHHtGzzz6rzz//XDNmzFB+fr6GDx+uxo0b67PPPtO7776rjh076u23365Uz3//+1+99NJLlbbHxMQoJSXFfPz++++radOmleIGDBigiIiIqz6e7OxsXXvttbrllluqLL/rrrv05z//WWvXrtU999xTZcyYMWOuqg3r16/XmTNnKm0fNmyYunTpclV12509e9b8lu+ZM2f09ddfa/Xq1dq1a5duu+02LVmypNJzTpw4Ue03g3/zm99Ikh5//HGdPn1ad999tzp06KCKigpt3bpVy5cvV9u2bfXQQw+Zz3nttdf05Zdf6oknntAHH3ygO++8U82aNdORI0e0cuVKffHFF0pOTnbK8QIAAAAAUBWua1TWEK5rAABch6QxAKBW7rnnHv3yl7/UrFmzNHbsWPn5+WnFihV655139MYbb2jKlCmqqKjQL3/5S73wwgt68skn1aRJk0r1HDt2TFOmTKm0vX///g4nV48++miV7di4ceNVn1wdO3ZMf//73zVy5Ej5+flVGdO/f38FBwfr3Xffrfbk6mrl5uYqNze30va2bds67eSqvLxcDzzwgCQpODhYLVu2VGxsrKZOnWouRXWxb775xnzOxexJ41mzZmnlypVat26dlixZooqKCrVu3VqPPfaYJk+e7HAvpODgYH300UdatmyZ3n77bb344os6ffq0oqKidPvttys7O1vXXXedU44XAAAAAICqcF3D+VxxXQMA4Do+RlVrSwIAAAAAAAAAAAAAvAL3NAYAAAAAAAAAAAAAL8by1ACABue///2vzp07V215QECAwsPDXdgi1yopKVFFRUW15X5+fmrRooULWwQAAAAAAGrL269rAADqJ5anBgA0OG3bttXXX39dbfmvf/1rffLJJ65rkIv169dPn376abXlbdq00VdffeW6BgEAAAAAgFrz9usaAID6iW8aAwAanOzsbP3444/Vljdr1syFrXG91157TcePH6+2vHHjxi5sDQAAAAAAuBzefl0DAFA/8U1jAAAAAAAAAAAAAPBivu5uAAAAAAAAAAAAAADAfbx6eerz58/r22+/1TXXXCMfHx93NwcAAACAFzMMQz/88IOioqLk68vf9wINFdcaAAAAANQntb3e4NVJ42+//VbR0dHubgYAAAAAmP7973/r+uuvd3czAFwhrjUAAAAAqI9qut7g1Unja665RtJPnRQSElIn+7DZbMrLy1NiYqL8/f3rZB9wH8bXczG2no3x9WyMr+dibD0b4yuVlZUpOjraPE8B0DC54lrDxXgN9WyMr+djjD0b4+v5GGPPxvh6Nm8Z39peb/DqpLF9maiQkJA6TRoHBwcrJCTEoyect2J8PRdj69kYX8/G+HouxtazMb4/YzlboGFzxbWGi/Ea6tkYX8/HGHs2xtfzMcaejfH1bN42vjVdb+BGWQAAAAAAAAAAAADgxUgaAwAAAAAAAAAAAIAXI2kMAAAAAAAAAAAAAF6MpDEAAAAAAAAAAAAAeDGSxgAAAAAAAAAAAADgxUgaAwAAAAAAAAAAAIAXI2kMAAAAAAAAAAAAAF6MpDEAAAAAAAAAAAAAeDGSxgAAAAAAAAAAAADgxUgaAwAAAAAAAAAAAIAXa+TuBgAAatb22bVXXcdXr97hhJYAAAAAAID6zhnXEWqDaw0AAHgOvmkMAAAAAAAAAAAAAF6MpDEAAAAAAAAAAAAAeDGSxgAAAAAAAAAAAADgxUgaAwAAAAAAAAAAAIAXI2kMAAAAAAAAAAAAAF6MpDEAAAAAAAAAAAAAeDGSxgAAAAAAAAAAAADgxRq5uwEAAAAAAAAAAAAAvFfbZ9fW+T6+evWOOt9HQ8Y3jQEAAAAAAAAAAADAi5E0BgAAAAAAbrVp0yYNGTJEUVFR8vHx0apVq8wym82miRMnqmvXrmrSpImioqI0evRoffvttw51lJSUKCUlRSEhIQoLC1NqaqpOnjzpELNr1y716dNHQUFBio6OVlZWVqW2rFy5Uh06dFBQUJC6du2qdevW1ckxAwAAAEB9QtIYAAAAAAC41alTp9S9e3ctXLiwUtnp06f1j3/8Q1OmTNE//vEPffDBBzpw4IDuuusuh7iUlBTt3btXFotFa9as0aZNm5SWlmaWl5WVKTExUW3atFFhYaFmzpypjIwMLVmyxIzZunWrRo4cqdTUVH3++ecaNmyYhg0bpj179tTdwQMAAABAPcA9jQEAAAAAgFsNGjRIgwYNqrIsNDRUFovFYdvrr7+uXr166ciRI2rdurX279+v3Nxc7dixQz179pQkLViwQIMHD9asWbMUFRWl7OxsVVRUaOnSpQoICFDnzp1VVFSk2bNnm8nlefPmaeDAgXr66aclSS+++KIsFotef/11LV68uA57AAAAAADci28aAwAAAACABuXEiRPy8fFRWFiYJCk/P19hYWFmwliSEhIS5Ovrq4KCAjOmb9++CggIMGOSkpJ04MABHT9+3IxJSEhw2FdSUpLy8/Pr+IgAAAAAwL34pjEAAAAAAGgwzpw5o4kTJ2rkyJEKCQmRJFmtVrVs2dIhrlGjRgoPD5fVajVjYmJiHGIiIiLMsmbNmslqtZrbLoyx11GV8vJylZeXm4/Lysok/XQvZpvNdoVHeXns+3HV/uBajK/nq4sxDvQznFbXpTAva8bvsOdjjD0b4+s6rnjvungcvWV8a3t8JI0BAAAAAECDYLPZdN9998kwDC1atMjdzZEkZWZmatq0aZW25+XlKTg42KVtuXgZb3gWxtfzOXOMs3o5rapLWrdunWt25AH4HfZ8jLFnY3zrniveu6p73/L08T19+nSt4kgaAwAAAACAes+eMP7666+1YcMG81vGkhQZGaljx445xJ89e1YlJSWKjIw0Y4qLix1i7I9rirGXV2XSpEmaMGGC+bisrEzR0dFKTEx0aGNdstlsslgsGjBggPz9/V2yT7gO4+v56mKMu2R87JR6arInI8kl+2nI+B32fIyxZ2N8XccV710Xv295y/jaV0OqCUljAAAAAABQr9kTxgcPHtTGjRt17bXXOpTHx8ertLRUhYWFio2NlSRt2LBB58+fV1xcnBnz/PPPy2azmReELBaL2rdvr2bNmpkx69ev1/jx4826LRaL4uPjq21bYGCgAgMDK2339/d3+YUnd+wT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qmLZsmWZMVtvo3ZM7TZ8bzSOlStXRkVFRZ06t2vXLgYMGFCnn+3bt4/DDz88M2bQoEHRvHnzWLBgQWbMscceG/n5+ZkxpaWlsWLFivjXv/6VGfNhPd+VufDRzZ49Ozp16hT7779/XHrppfHWW29l1unt7mXt2rUREdGhQ4eIaFo/j3dlLuzYB3tb64EHHoiOHTtG3759Y8yYMbFu3brMOr3dPWzevDkeeuiheO+996KkpMTzFiBLvL5s2hx/SAfHH9LBMYjc4RhE7nMsInc5FtHwWmZ7Arnqn//8Z2zevLnON2JERFFRUbz88stZmhUDBgyIyZMnx/777x9vvvlmXHvttXHMMcfE0qVLo6KiIvLz86N9+/Z17lNUVBQVFRUREVFRUbHdntau+7AxVVVVsX79+vjXv/7le6MR1PZje3XeuledOnWqs75ly5bRoUOHOmN69uy5zTZq1+2111477PnW29jZXPhoTj755Dj99NOjZ8+e8Ze//CW+//3vxymnnBLl5eXRokULvd2NbNmyJUaOHBmf+9znom/fvhERTern8a7Mhe3bXm8jIs4666zo0aNHdOnSJV588cW48sorY8WKFfHb3/42IvS2qVuyZEmUlJTEhg0bom3btvHoo49Gnz59YvHixZ63AFng2EPT5fhDejj+kPscg8gdjkHkPscicpNjEY1HaEyqnHLKKZn/H3TQQTFgwIDo0aNHPPzww9G6desszgz4KL7+9a9n/t+vX7846KCD4jOf+UzMnj07TjzxxCzOjI9q+PDhsXTp0pg7d262p0I921FvL7744sz/+/XrF507d44TTzwx/vKXv8RnPvOZxp4mH9H+++8fixcvjrVr18ZvfvObGDZsWMyZMyfb0wKAJsfxB8gdjkHkDscgcp9jEbnJsYjG4/LUDaRjx47RokWLqKysrLO8srIyiouLszQrPqh9+/ax3377xauvvhrFxcWxcePGWLNmTZ0xW/esuLh4uz2tXfdhYwoLC6N169a+NxpJbS0/rM7FxcWxevXqOus3bdoUb7/9dr30fOv1O5sLn8ynP/3p6NixY7z66qsRobe7ixEjRsQTTzwRTz31VHTt2jWzvCn9PN6VubCtHfV2ewYMGBARUef5q7dNV35+fvTq1Sv69+8f48aNi4MPPjhuvfVWz1uALPH6cvfh+EPucvwhfRyD2D05BpH7HIvIXY5FNB6hcQPJz8+P/v37x8yZMzPLtmzZEjNnzoySkpIszoytvfvuu/GXv/wlOnfuHP3794+8vLw6PVuxYkWsWrUq07OSkpJYsmRJnT8Ey8rKorCwMPr06ZMZs/U2asfUbsP3RuPo2bNnFBcX16lzVVVVLFiwoE4/16xZEwsXLsyMmTVrVmzZsiXzh0NJSUk8/fTTUVNTkxlTVlYW+++/f+y1116ZMR/W812ZC5/M//3f/8Vbb70VnTt3jgi9beqSJIkRI0bEo48+GrNmzdrmEl1N6efxrsyFf9tZb7dn8eLFERF1nr96u/vYsmVLVFdXe94CZInXl7sPxx9yl+MP6eMYxO7FMYjc51hE+jgW0YASGsxDDz2UFBQUJJMnT06WL1+eXHzxxUn79u2TioqKbE8ttb7zne8ks2fPTlauXJk8++yzyaBBg5KOHTsmq1evTpIkSS655JKke/fuyaxZs5IXXnghKSkpSUpKSjL337RpU9K3b99k8ODByeLFi5Np06Yl++yzTzJmzJjMmNdeey1p06ZNMnr06OSll15KJk6cmLRo0SKZNm1aZozvjfrxzjvvJIsWLUoWLVqURERy8803J4sWLUr++te/JkmSJDfccEPSvn375He/+13y4osvJqeeemrSs2fPZP369ZltnHzyycmhhx6aLFiwIJk7d27y2c9+NjnzzDMz69esWZMUFRUl55xzTrJ06dLkoYceStq0aZPcfffdmTHPPvts0rJly+SnP/1p8tJLLyXXXHNNkpeXlyxZsiQzZlfmwr99WG/feeed5Lvf/W5SXl6erFy5MnnyySeTww47LPnsZz+bbNiwIbMNvW26Lr300qRdu3bJ7NmzkzfffDPzb926dZkxTenn8c7mwr/trLevvvpqct111yUvvPBCsnLlyuR3v/td8ulPfzo59thjM9vQ26bre9/7XjJnzpxk5cqVyYsvvph873vfS5o1a5bMmDEjSRLPW4Bs8fqyaXL8Ibc4/pDbHIPIbY5B5D7HInKbYxGNS2jcwG677bake/fuSX5+fnLkkUcm8+fPz/aUUu2MM85IOnfunOTn5yef+tSnkjPOOCN59dVXM+vXr1+f/L//9/+SvfbaK2nTpk3yla98JXnzzTfrbOP1119PTjnllKR169ZJx44dk+985ztJTU1NnTFPPfVUcsghhyT5+fnJpz/96WTSpEnbzMX3xif31FNPJRGxzb9hw4YlSZIkW7ZsSf7rv/4rKSoqSgoKCpITTzwxWbFiRZ1tvPXWW8mZZ56ZtG3bNiksLEzOP//85J133qkz5k9/+lNy9NFHJwUFBcmnPvWp5IYbbthmLg8//HCy3377Jfn5+cmBBx6YTJkypc76XZkL//ZhvV23bl0yePDgZJ999kny8vKSHj16JBdddNE2Bz30tunaXm8jos7Pyqb083hX5sL7dtbbVatWJccee2zSoUOHpKCgIOnVq1cyevToZO3atXW2o7dN0ze+8Y2kR48eSX5+frLPPvskJ554YuZFWpJ43gJkk9eXTY/jD7nF8Yfc5hhEbnMMIvc5FpHbHItoXM2SJEnq//xlAAAAAAAAAHYHPtMYAAAAAAAAIMWExgAAAAAAAAApJjQGAAAAAAAASDGhMQAAAAAAAECKCY0BAAAAAAAAUkxoDAAAAAAAAJBiQmMAAAAAAACAFBMaAwAAAAAAAKSY0BgAAAAAAAAgxYTGAAAAAAAAACkmNAYAAAAAAABIMaExAAAAAAAAQIoJjQEAAAAAAABSTGgMAAAAAAAAkGJCYwAAAAAAAIAUExoDAAAAAAAApJjQGAAAAAAAACDFhMYAAAAAAAAAKSY0BgAAAAAAAEgxoTEAAAAAAABAigmNAQAAAAAAAFJMaAwAAAAAAACQYkJjAAAAAAAAgBQTGgMAAAAAAACkmNAYAAAAAAAAIMWExgAAAAAAAAApJjQGAAAAAAAASDGhMQAAAAAAAECKCY0BAAAAAAAAUkxoDAAAAAAAAJBiQmMAAAAAAACAFBMaAwAAAAAAAKSY0BgAAAAAAAAgxYTGAAAAAAAAACkmNAYAAAAAAABIMaExAAAAAAAAQIoJjQEAAAAAAABSTGgMAAAAAAAAkGJCYwAAAAAAAIAUExoDkHWTJ0+OZs2aZf61bNkyPvWpT8V5550Xf//737cZnyRJ/M///E8ce+yx0b59+2jTpk3069cvrrvuunjvvfe2GX/cccdF3759P3QOY8eOrTOHD/6rqKj4yPv16KOPximnnBIdO3aM/Pz86NKlS3zta1+LWbNmbTN21apVcckll8S+++4bBQUF0alTpzjttNPi2Wef3Wbs7Nmz68ytoKAgioqK4rjjjosf//jH8Y9//GOb+3ywxh/8N3/+/I+8fwAAAAAA5IaW2Z4AANS67rrromfPnrFhw4aYP39+TJ48OebOnRtLly6NVq1aRUTE5s2b46yzzoqHH344jjnmmBg7dmy0adMmnnnmmbj22mvjkUceiSeffDKKioo+1hzuvPPOaNu27TbL27dvv8vbSJIkvvGNb8TkyZPj0EMPjVGjRkVxcXG8+eab8eijj8aJJ54Yzz77bBx11FEREfHss8/GF77whYiIuPDCC6NPnz5RUVERkydPjmOOOSZuvfXWuOyyy7Z5nG9961txxBFHxObNm+Mf//hHzJs3L6655pq4+eab4+GHH44TTjhhm/vU1viDevXqtcv7BwAAAABAbhEaA9BknHLKKXH44YdHxPvhaceOHeMnP/lJPP744/G1r30tIiLGjx8fDz/8cHz3u9+NG2+8MXPfiy++OL72ta/FaaedFuedd1784Q9/+Fhz+OpXvxodO3b8RPtx0003xeTJk2PkyJFx8803R7NmzTLrfvCDH8T//M//RMuW7/8K/te//hVf/epXo3Xr1vHss8/GZz7zmczYUaNGRWlpaYwcOTL69++fCZlrHXPMMfHVr361zrI//elPMXjw4Bg6dGgsX748OnfuXGf91jUGAAAAAIAIl6cGoAk75phjIiLiL3/5S0RErF+/Pm688cbYb7/9Yty4cduM/9KXvhTDhg2LadOmZe1yy+vXr49x48bFAQccED/96U/rBMa1zjnnnDjyyCMjIuLuu++OioqKuPHGG+sExhERrVu3jvvvvz+aNWsW11133S49/sEHHxy33HJLrFmzJm6//fZPvkMAAAAAAOQ8oTEATdbrr78eERF77bVXRETMnTs3/vWvf8VZZ52VOVP3g84999yIiHjiiSc+1mO+/fbb8c9//rPOvzVr1uzy/efOnRtvv/12nHXWWdGiRYudjv/9738frVq1ypxJ/UE9e/aMo48+OmbNmhXr16/fpTnUnrk8Y8aMbdatXbt2m/176623dmm7AAAAAADkJpenBqDJqA00N2zYEAsWLIhrr702CgoK4otf/GJERCxfvjwi3j+bdkdq17300ksfaw7777//dpe9/PLLu3T/2sft16/fLo1fvnx57L///lFQULDDMQcffHDMmTMnXn311V3abl5eXuy3336ZM7S3NmjQoG2WFRQUxIYNG3ZpvgAAAAAA5B6hMQBNxgcDzX333Td++ctfRteuXSMi4p133omIiD333HOH26hdV1VV9bHm8L//+79RWFhYZ9kee+yxy/evfdwPm+PW3nnnnZ2O/Tj71LZt20y9tjZx4sTYb7/96izblTOiAQAAAADIXUJjAJqM2kBz7dq1cd9998XTTz9d5wzc2vB0e2ForV0Jlj/MscceGx07dvxY942ITOD8YXPc2p577rnTsR9nn959993tjj/yyCPj8MMP3+XtAAAAAACQ+3ymMQBNxpFHHhmDBg2KoUOHxuOPPx59+/aNs846K959992IiOjdu3dERLz44os73Ebtuj59+jT8hLfjgAMOiIiIJUuW7NL43r17x4oVK6K6unqHY1588cXIy8uLz372s7u0zZqamvjzn/8cvXr12qXxAAAAAACkm9AYgCapRYsWMW7cuHjjjTfi9ttvj4iIo48+Otq3bx8PPvhgbN68ebv3+8UvfhERkfkc5MZ29NFHx1577RW/+tWvdjjHrX3xi1+MDRs2xCOPPLLd9a+//no888wzccIJJ0Tr1q13aQ6/+c1vYv369VFaWvqR5g4AAAAAQDoJjQFoso477rg48sgj45ZbbokNGzZEmzZt4rvf/W6sWLEifvCDH2wzfsqUKTF58uQoLS2NgQMHZmHGEW3atIkrr7wyXnrppbjyyisjSZJtxvzyl7+M5557LiIivvnNb0anTp1i9OjR8dprr9UZt2HDhjj//PMjSZK4+uqrd+nx//SnP8XIkSNjr732iuHDh3/yHQIAAAAAIOf5TGMAmrTRo0fHf/zHf8TkyZPjkksuie9973uxaNGi+MlPfhLl5eUxdOjQaN26dcydOzd++ctfRu/eveP+++/fZjv/+Mc/4oc//OE2y3v27Blnn3125vZvfvObaNu27TbjTjrppCgqKtrlOS9btixuuummeOqpp+KrX/1qFBcXR0VFRTz22GPx3HPPxbx58yIiYu+9947f/OY3MWTIkDjssMPiwgsvjD59+kRFRUVMnjw5Xn311bj11lvjqKOO2uZxnnnmmdiwYUNs3rw53nrrrXj22Wfj8ccfj3bt2sWjjz4axcXF29znD3/4Q7z88svbLD/qqKPi05/+9C7tHwAAAAAAuaVZsr1ToACgEU2ePDnOP//8eP755+Pwww+vs27Lli2x3377RUTEihUrokWLFrFly5b4xS9+Effcc08sWbIkNm7cGJ/5zGfia1/7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jGlK9d2VuexOdlb/t99+Oy677LLYf//9o3Xr1tG9e/f41re+FWvXrq2zHfX/+HblOVArSZI45ZRTtvuzSg8+nl2tf3l5eZxwwgmxxx57RGFhYRx77LGxfv36zHp/BwEAAACkTEKDmDp1avKDH/wg+e1vf5tERPLoo49m1q1ZsyYZNGhQ8utf/zp5+eWXk/Ly8uTII49M+vfvX2cbJ598cnLwwQcn8+fPT5555pmkV69eyZlnnplZv3bt2qSoqCg5++yzk6VLlya/+tWvktatWyd33313Zsyzzz6btGjRIhk/fnyyfPny5Kqrrkry8vKSJUuWZMbccMMNSbt27ZLHHnss+dOf/pR8+ctfTnr27JmsX7++4QrUwD6s/lv77W9/mxx88MFJly5dkgkTJtRZp/4f387q/+qrryYdOnRIRo8enfzxj39MXn311eR3v/tdUllZmRlzySWXJN26dUtmzpyZvPDCC8nAgQOTo446KrN+06ZNSd++fZNBgwYlixYtSqZOnZp07NgxGTNmTGbMa6+9lrRp0yYZNWpUsnz58uS2225LWrRokUybNi0z5qGHHkry8/OT++67L1m2bFly0UUXJe3bt68zl93Nzup/0UUXJZ/5zGeSp556Klm5cmVy9913Jy1atEh+97vfZcao/8dXWlqaTJo0KVm6dGmyePHi5Atf+ELSvXv35N13382MaUr13dlcdjc7q/+SJUuS008/PXn88ceTV199NZk5c2by2c9+Nhk6dGhmG+r/yezKc6DWzTffnJxyyinb/KzSg49vV+o/b968pLCwMBk3blyydOnS5OWXX05+/etfJxs2bMiM8XcQAAAAQLoIjRvBh4WWtZ577rkkIpK//vWvSZIkyfLly5OISJ5//vnMmD/84Q9Js2bNkr///e9JkiTJHXfckey1115JdXV1ZsyVV16Z7L///pnbX/va15IhQ4bUeawBAwYk3/zmN5MkSZItW7YkxcXFyY033phZv2bNmqSgoCD51a9+9fF2uInZUf3/7//+L/nUpz6VLF26NOnRo0ed0Fj968/26n/GGWck//mf/7nD+6xZsybJy8tLHnnkkcyyl156KYmIpLy8PEmS94PR5s2bJxUVFZkxd955Z1JYWJjpyRVXXJEceOCB2zx2aWlp5vaRRx6ZDB8+PHN78+bNSZcuXZJx48Z99J1tgrZX/wMPPDC57rrr6iw77LDDkh/84AdJkqh/fVu9enUSEcmcOXOSJGla9d2VuezuPlj/7Xn44YeT/Pz8pKamJkkS9a9vO+rBokWLkk996lPJm2++uc3PKj2oP9ur/4ABA5Krrrpqh/fxdxAAAABA+rg8dROxdu3aaNasWbRv3z4i3r9kYPv27ePwww/PjBk0aFA0b948FixYkBlz7LHHRn5+fmZMaWlprFixIv71r39lxgwaNKjOY5WWlkZ5eXlERKxcuTIqKirqjGnXrl0MGDAgMyYXbdmyJc4555wYPXp0HHjggdusV/+Gs2XLlpgyZUrst99+UVpaGp06dYoBAwbUuSzpwoULo6ampk5dDjjggOjevXumLuXl5dGvX78oKirKjCktLY2qqqpYtmxZZsyH1X/jxo2xcOHCOmOaN28egwYNytn6R0QcddRR8fjjj8ff//73SJIknnrqqfjzn/8cgwcPjgj1r2+1lz3u0KFDRDSt+u7KXHZ3H6z/jsYUFhZGy5YtI0L969v2erBu3bo466yzYuLEiVFcXLzNffSg/nyw/qtXr44FCxZEp06d4qijjoqioqL4/Oc/H3Pnzs3cx99BAAAAAOkjNG4CNmzYEFdeeWWceeaZUVhYGBERFRUV0alTpzrjWrZsGR06dIiKiorMmK0PpkZE5vbOxmy9fuv7bW9MLvrJT34SLVu2jG9961vbXa/+DWf16tXx7rvvxg033BAnn3xyzJgxI77yla/E6aefHnPmzImI9+uSn5+feRNFrQ/W7uPWv6qqKtavXx///Oc/Y/Pmzamqf0TEbbfdFn369ImuXbtGfn5+nHzyyTFx4sQ49thjI0L969OWLVti5MiR8bnPfS769u0bEU2rvrsyl93Z9ur/Qf/85z/j+uuvj4svvjizTP3rz456cPnll8dRRx0Vp5566nbvpwf1Y3v1f+211yIiYuzYsXHRRRfFtGnT4rDDDosTTzwx81nC/g4CAAAASJ+W2Z5A2tXU1MTXvva1SJIk7rzzzmxPJxUWLlwYt956a/zxj3+MZs2aZXs6qbNly5aIiDj11FPj8ssvj4iIQw45JObNmxd33XVXfP7zn8/m9FLhtttui/nz58fjjz8ePXr0iKeffjqGDx8eXbp02eaMMD6Z4cOHx9KlS+ucwUfj2Vn9q6qqYsiQIdGnT58YO3Zs404uJbbXg8cffzxmzZoVixYtyuLM0mF79a/9PfzNb34zzj///IiIOPTQQ2PmzJlx3333xbhx47IyVwAAAACyy5nGWVQbGP/1r3+NsrKyzFnGERHFxcWxevXqOuM3bdoUb7/9duYyjsXFxVFZWVlnTO3tnY3Zev3W99vemFzzzDPPxOrVq6N79+7RsmXLaNmyZfz1r3+N73znO7HvvvtGhPo3pI4dO0bLli2jT58+dZb37t07Vq1aFRHv12Xjxo2xZs2aOmM+WLuPW//CwsJo3bp1dOzYMVq0aJGq+q9fvz6+//3vx8033xxf+tKX4qCDDooRI0bEGWecET/96U8jQv3ry4gRI+KJJ56Ip556Krp27ZpZ3pTquytz2V3tqP613nnnnTj55JNjzz33jEcffTTy8vIy69S/fuyoB7NmzYq//OUv0b59+8zv4YiIoUOHxnHHHRcRelAfdlT/zp07R0Ts9Pewv4MAAAAA0kVonCW1gfErr7wSTz75ZOy999511peUlMSaNWti4cKFmWWzZs2KLVu2xIABAzJjnn766aipqcmMKSsri/333z/22muvzJiZM2fW2XZZWVmUlJRERETPnj2juLi4zpiqqqpYsGBBZkyuOeecc+LFF1+MxYsXZ/516dIlRo8eHdOnT48I9W9I+fn5ccQRR8SKFSvqLP/zn/8cPXr0iIiI/v37R15eXp26rFixIlatWpWpS0lJSSxZsqTOQe3aN1/UHgjfWf3z8/Ojf//+dcZs2bIlZs6cmbP1r6mpiZqammjevO6P/xYtWmTOPlP/TyZJkhgxYkQ8+uijMWvWrOjZs2ed9U2pvrsyl93Nzuof8f7P2cGDB0d+fn48/vjj0apVqzrr1f+T2VkPvve9723zezgiYsKECTFp0qSI0INPYmf133fffaNLly4f+nvY30EAAAAAKZTQIN55551k0aJFyaJFi5KISG6++eZk0aJFyV//+tdk48aNyZe//OWka9euyeLFi5M333wz86+6ujqzjZNPPjk59NBDkwULFiRz585NPvvZzyZnnnlmZv2aNWuSoqKi5JxzzkmWLl2aPPTQQ0mbNm2Su+++OzPm2WefTVq2bJn89Kc/TV566aXkmmuuSfLy8pIlS5Zkxtxwww1J+/btk9/97nfJiy++mJx66qlJz549k/Xr1zdOsRrAh9V/e3r06JFMmDChzjL1//h2Vv/f/va3SV5eXvLzn/88eeWVV5LbbrstadGiRfLMM89ktnHJJZck3bt3T2bNmpW88MILSUlJSVJSUpJZv2nTpqRv377J4MGDk8WLFyfTpk1L9tlnn2TMmDGZMa+99lrSpk2bZPTo0clLL72UTJw4MWnRokUybdq0zJiHHnooKSgoSCZPnpwsX748ufjii5P27dsnFRUVjVCphrGz+n/+859PDjzwwOSpp55KXnvttWTSpElJq1atkjvuuCOzDfX/+C699NKkXbt2yezZs+v8fF+3bl1mTFOq787msrvZWf3Xrl2bDBgwIOnXr1/y6quv1hmzadOmJEnU/5PalefAB0VE8uijj2Zu68HHtyv1nzBhQlJYWJg88sgjySuvvJJcddVVSatWrZJXX301M8bfQQAAAADpIjRuIE899VQSEdv8GzZsWLJy5crtrouI5Kmnnsps46233krOPPPMpG3btklhYWFy/vnnJ++8806dx/nTn/6UHH300UlBQUHyqU99Krnhhhu2mcvDDz+c7Lfffkl+fn5y4IEHJlOmTKmzfsuWLcl//dd/JUVFRUlBQUFy4oknJitWrGiQujSWD6v/9mwvNFb/j29X6n/vvfcmvXr1Slq1apUcfPDByWOPPVZnG+vXr0/+3//7f8lee+2VtGnTJvnKV76SvPnmm3XGvP7668kpp5yStG7dOunYsWPyne98J6mpqdlmLoccckiSn5+ffPrTn04mTZq0zXxvu+22pHv37kl+fn5y5JFHJvPnz6+3WmTDzur/5ptvJuedd17SpUuXpFWrVsn++++f3HTTTcmWLVsy21D/j29HP9+33vemVN9dmcvuZGf139HzIyKSlStXZraj/h/frjwHtnefrUPjJNGDj2tX6z9u3Lika9euSZs2bZKSkpI6b9xKEn8HAQAAAKRNsyRJkvo4YxkAAAAAAACA3Y/PNAYAAAAAAABIMaExAAAAAAAAQIoJjQEAAAAAAABSTGgMAAAAAAAAkGJCYwAAAAAAAIAUExoDAAAAAAAApJjQGAAAAAAAACDFhMYAAAAAAAAAKSY0BgAAAAAAAEgxoTEAAAAAAABAigmNAQAAAAAAAFJMaAwAAAAAAACQYv8fLfi1QpkeKQ4AAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 2400x2200 with 10 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Distribution of values of variables\n",
    "_ = X.astype(int).hist(bins='auto', figsize=(24, 22), layout=(5, 2))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "caf00dac",
   "metadata": {
    "papermill": {
     "duration": 0.014957,
     "end_time": "2024-10-05T18:03:20.358996",
     "exception": false,
     "start_time": "2024-10-05T18:03:20.344039",
     "status": "completed"
    },
    "tags": []
   },
   "source": [
    "From the EDA we can get a few hints about what to do:\n",
    "* the target classes are unbalanced, we should consider re-balancing the data\n",
    "* all the categorical features have a different number of values ranging from 70 to up to over 7000 (high cardinality features)\n",
    "* there are no missing values but many categorical values appear just in test, not in train (this especially affects the RESOURCE feature)\n",
    "* the categorical values are sparse"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "1d836ac2",
   "metadata": {
    "papermill": {
     "duration": 0.012926,
     "end_time": "2024-10-05T18:03:20.386145",
     "exception": false,
     "start_time": "2024-10-05T18:03:20.373219",
     "status": "completed"
    },
    "tags": []
   },
   "source": [
    "# 3. Feature engineering"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "fe6fd162",
   "metadata": {
    "papermill": {
     "duration": 0.016122,
     "end_time": "2024-10-05T18:03:20.416724",
     "exception": false,
     "start_time": "2024-10-05T18:03:20.400602",
     "status": "completed"
    },
    "tags": []
   },
   "source": [
    "As the categorical features are sparsed and mismatched, we replace the original values with contiguous values, substituing with the value -1 in the test set for values that are not present in the train set. This operation should permit the LightGBM "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "495a37b4",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-10-05T18:03:20.445549Z",
     "iopub.status.busy": "2024-10-05T18:03:20.445118Z",
     "iopub.status.idle": "2024-10-05T18:03:20.542485Z",
     "shell.execute_reply": "2024-10-05T18:03:20.540053Z"
    },
    "papermill": {
     "duration": 0.115143,
     "end_time": "2024-10-05T18:03:20.545260",
     "exception": false,
     "start_time": "2024-10-05T18:03:20.430117",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "RESOURCE : [0, 38, 136, 138, 153] ... [312136, 312139, 312140, 312152, 312153]\n",
      "MGR_ID : [25, 27, 30, 32, 33] ... [311597, 311651, 311682, 311683, 311696]\n",
      "ROLE_ROLLUP_1 : [4292, 5110, 11146, 91261, 117876] ... [203209, 209434, 216705, 247952, 311178]\n",
      "ROLE_ROLLUP_2 : [23779, 31010, 32137, 117877, 117883] ... [151110, 159716, 176316, 185842, 286791]\n",
      "ROLE_DEPTNAME : [4674, 5488, 5606, 6104, 6725] ... [272283, 274241, 275600, 277693, 286792]\n",
      "ROLE_TITLE : [117879, 117885, 117896, 117899, 117905] ... [297560, 299559, 307024, 310825, 311867]\n",
      "ROLE_FAMILY_DESC : [4673, 62587, 117879, 117886, 117897] ... [311782, 311792, 311834, 311839, 311867]\n",
      "ROLE_FAMILY : [3130, 4673, 6725, 19721, 19793] ... [254395, 270488, 290919, 292795, 308574]\n",
      "ROLE_CODE : [117880, 117888, 117898, 117900, 117908] ... [254396, 258436, 266863, 268610, 270691]\n"
     ]
    }
   ],
   "source": [
    "for col in integer_cols:\n",
    "    unique_values = sorted(X[col].unique())\n",
    "    print(col, \":\", unique_values[:5],'...', unique_values[-5:])\n",
    "    conversion_dict = dict(zip(unique_values, range(len(unique_values))))\n",
    "    # When working with the Categorical’s codes, missing values will always have a code of -1.\n",
    "    X[col] = X[col].map(conversion_dict, na_action=-1).astype('category', copy=False)\n",
    "    X_test[col] = X_test[col].map(conversion_dict, na_action=-1).astype('category', copy=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "8a4faec4",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-10-05T18:03:20.576985Z",
     "iopub.status.busy": "2024-10-05T18:03:20.576308Z",
     "iopub.status.idle": "2024-10-05T18:03:20.599267Z",
     "shell.execute_reply": "2024-10-05T18:03:20.597770Z"
    },
    "papermill": {
     "duration": 0.042806,
     "end_time": "2024-10-05T18:03:20.602147",
     "exception": false,
     "start_time": "2024-10-05T18:03:20.559341",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Missing cases\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>train</th>\n",
       "      <th>test</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>RESOURCE</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>MGR_ID</th>\n",
       "      <td>0</td>\n",
       "      <td>1627</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ROLE_ROLLUP_1</th>\n",
       "      <td>0</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ROLE_ROLLUP_2</th>\n",
       "      <td>0</td>\n",
       "      <td>12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ROLE_DEPTNAME</th>\n",
       "      <td>0</td>\n",
       "      <td>62</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ROLE_TITLE</th>\n",
       "      <td>0</td>\n",
       "      <td>30</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ROLE_FAMILY_DESC</th>\n",
       "      <td>0</td>\n",
       "      <td>1249</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ROLE_FAMILY</th>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ROLE_CODE</th>\n",
       "      <td>0</td>\n",
       "      <td>30</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                  train  test\n",
       "RESOURCE              0     0\n",
       "MGR_ID                0  1627\n",
       "ROLE_ROLLUP_1         0     4\n",
       "ROLE_ROLLUP_2         0    12\n",
       "ROLE_DEPTNAME         0    62\n",
       "ROLE_TITLE            0    30\n",
       "ROLE_FAMILY_DESC      0  1249\n",
       "ROLE_FAMILY           0     1\n",
       "ROLE_CODE             0    30"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "print(\"Missing cases\")\n",
    "pd.concat([X.isna().sum(), X_test.isna().sum()], axis=\"columns\").rename(columns={0: \"train\", 1:\"test\"})"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b4388da7",
   "metadata": {
    "papermill": {
     "duration": 0.014562,
     "end_time": "2024-10-05T18:03:20.631417",
     "exception": false,
     "start_time": "2024-10-05T18:03:20.616855",
     "status": "completed"
    },
    "tags": []
   },
   "source": [
    "# 4. Setting up optimization"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e76688f4",
   "metadata": {
    "papermill": {
     "duration": 0.014,
     "end_time": "2024-10-05T18:03:20.660965",
     "exception": false,
     "start_time": "2024-10-05T18:03:20.646965",
     "status": "completed"
    },
    "tags": []
   },
   "source": [
    "First, we create a wrapper function to deal with running the optimizer and reporting back its best results."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "c8f149a6",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-10-05T18:03:20.693500Z",
     "iopub.status.busy": "2024-10-05T18:03:20.692990Z",
     "iopub.status.idle": "2024-10-05T18:03:20.704921Z",
     "shell.execute_reply": "2024-10-05T18:03:20.703583Z"
    },
    "papermill": {
     "duration": 0.032094,
     "end_time": "2024-10-05T18:03:20.708132",
     "exception": false,
     "start_time": "2024-10-05T18:03:20.676038",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [],
   "source": [
    "# Reporting util for different optimizers\n",
    "def report_perf(optimizer, X, y, title=\"model\", callbacks=None):\n",
    "    \"\"\"\n",
    "    A wrapper for measuring time and performances of different optmizers\n",
    "    \n",
    "    optimizer = a sklearn or a skopt optimizer\n",
    "    X = the training set \n",
    "    y = our target\n",
    "    title = a string label for the experiment\n",
    "    \"\"\"\n",
    "    start = time()\n",
    "    \n",
    "    if callbacks is not None:\n",
    "        optimizer.fit(X, y, callback=callbacks)\n",
    "    else:\n",
    "        optimizer.fit(X, y)\n",
    "        \n",
    "    d=pd.DataFrame(optimizer.cv_results_)\n",
    "    best_score = optimizer.best_score_\n",
    "    best_score_std = d.iloc[optimizer.best_index_].std_test_score\n",
    "    best_params = optimizer.best_params_\n",
    "    \n",
    "    print((title + \" took %.2f seconds,  candidates checked: %d, best CV score: %.3f \"\n",
    "           + u\"\\u00B1\"+\" %.3f\") % (time() - start, \n",
    "                                   len(optimizer.cv_results_['params']),\n",
    "                                   best_score,\n",
    "                                   best_score_std))    \n",
    "    print('Best parameters:')\n",
    "    pprint.pprint(best_params)\n",
    "    print()\n",
    "    return best_params"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "7576706e",
   "metadata": {
    "papermill": {
     "duration": 0.013837,
     "end_time": "2024-10-05T18:03:20.736891",
     "exception": false,
     "start_time": "2024-10-05T18:03:20.723054",
     "status": "completed"
    },
    "tags": []
   },
   "source": [
    "We then define the evaluation metric, using the Scikit-learn function make_scorer allows us to convert the optimization into a minimization problem, as required by Scikit-optimize."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "fecdbbbe",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-10-05T18:03:20.766502Z",
     "iopub.status.busy": "2024-10-05T18:03:20.766077Z",
     "iopub.status.idle": "2024-10-05T18:03:20.772133Z",
     "shell.execute_reply": "2024-10-05T18:03:20.770911Z"
    },
    "papermill": {
     "duration": 0.024063,
     "end_time": "2024-10-05T18:03:20.774862",
     "exception": false,
     "start_time": "2024-10-05T18:03:20.750799",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [],
   "source": [
    "# Converting average precision score into a scorer suitable for model selection\n",
    "roc_auc = make_scorer(roc_auc_score, greater_is_better=True, needs_threshold=True)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "4936454f",
   "metadata": {
    "papermill": {
     "duration": 0.013752,
     "end_time": "2024-10-05T18:03:20.803183",
     "exception": false,
     "start_time": "2024-10-05T18:03:20.789431",
     "status": "completed"
    },
    "tags": []
   },
   "source": [
    "We set up a stratified 5-fold cross validation: stratification helps us to obtain representative folds of the data and the target, though the target is unbalanced."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "d85e4e89",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-10-05T18:03:20.835220Z",
     "iopub.status.busy": "2024-10-05T18:03:20.834778Z",
     "iopub.status.idle": "2024-10-05T18:03:20.840138Z",
     "shell.execute_reply": "2024-10-05T18:03:20.838988Z"
    },
    "papermill": {
     "duration": 0.024432,
     "end_time": "2024-10-05T18:03:20.842461",
     "exception": false,
     "start_time": "2024-10-05T18:03:20.818029",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [],
   "source": [
    "# Setting a 5-fold stratified cross-validation (note: shuffle=True)\n",
    "skf = StratifiedKFold(n_splits=5, shuffle=True, random_state=0)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ec6d0c20",
   "metadata": {
    "papermill": {
     "duration": 0.014337,
     "end_time": "2024-10-05T18:03:20.870993",
     "exception": false,
     "start_time": "2024-10-05T18:03:20.856656",
     "status": "completed"
    },
    "tags": []
   },
   "source": [
    "We set up a generic LightGBM classifier."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "119cbd72",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-10-05T18:03:20.902187Z",
     "iopub.status.busy": "2024-10-05T18:03:20.901743Z",
     "iopub.status.idle": "2024-10-05T18:03:20.909756Z",
     "shell.execute_reply": "2024-10-05T18:03:20.907552Z"
    },
    "papermill": {
     "duration": 0.027056,
     "end_time": "2024-10-05T18:03:20.913015",
     "exception": false,
     "start_time": "2024-10-05T18:03:20.885959",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [],
   "source": [
    "clf = lgb.LGBMClassifier(boosting_type='gbdt',\n",
    "                         metric='auc',\n",
    "                         objective='binary',\n",
    "                         n_jobs=1, \n",
    "                         verbose=-1,\n",
    "                         random_state=0)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "141425a0",
   "metadata": {
    "papermill": {
     "duration": 0.016066,
     "end_time": "2024-10-05T18:03:20.943683",
     "exception": false,
     "start_time": "2024-10-05T18:03:20.927617",
     "status": "completed"
    },
    "tags": []
   },
   "source": [
    "We define a search space, expliciting the key hyper-parameters to optimize and the range where to look for the best values."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "4fa0246e",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-10-05T18:03:20.974409Z",
     "iopub.status.busy": "2024-10-05T18:03:20.973943Z",
     "iopub.status.idle": "2024-10-05T18:03:20.997161Z",
     "shell.execute_reply": "2024-10-05T18:03:20.995901Z"
    },
    "papermill": {
     "duration": 0.042965,
     "end_time": "2024-10-05T18:03:21.000810",
     "exception": false,
     "start_time": "2024-10-05T18:03:20.957845",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [],
   "source": [
    "search_spaces = {\n",
    "    'learning_rate': Real(0.01, 1.0, 'log-uniform'),     # Boosting learning rate\n",
    "    'n_estimators': Integer(30, 5000),                   # Number of boosted trees to fit\n",
    "    'num_leaves': Integer(2, 512),                       # Maximum tree leaves for base learners\n",
    "    'max_depth': Integer(-1, 256),                       # Maximum tree depth for base learners, <=0 means no limit\n",
    "    'min_child_samples': Integer(1, 256),                # Minimal number of data in one leaf\n",
    "    'max_bin': Integer(100, 1000),                       # Max number of bins that feature values will be bucketed\n",
    "    'subsample': Real(0.01, 1.0, 'uniform'),             # Subsample ratio of the training instance\n",
    "    'subsample_freq': Integer(0, 10),                    # Frequency of subsample, <=0 means no enable\n",
    "    'colsample_bytree': Real(0.01, 1.0, 'uniform'),      # Subsample ratio of columns when constructing each tree\n",
    "    'min_child_weight': Real(0.01, 10.0, 'uniform'),     # Minimum sum of instance weight (hessian) needed in a child (leaf)\n",
    "    'reg_lambda': Real(1e-9, 100.0, 'log-uniform'),      # L2 regularization\n",
    "    'reg_alpha': Real(1e-9, 100.0, 'log-uniform'),       # L1 regularization\n",
    "    'scale_pos_weight': Real(1.0, 500.0, 'uniform'),     # Weighting of the minority class (Only for binary classification)\n",
    "        }"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "4dac9cec",
   "metadata": {
    "papermill": {
     "duration": 0.015097,
     "end_time": "2024-10-05T18:03:21.035407",
     "exception": false,
     "start_time": "2024-10-05T18:03:21.020310",
     "status": "completed"
    },
    "tags": []
   },
   "source": [
    "We then define the Bayesian optimization engine, providing to it our LightGBM, the search spaces, the evaluation metric, the cross-validation. We set a large number of possible experiments and some parallelism in the search operations."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "d470e06d",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-10-05T18:03:21.069983Z",
     "iopub.status.busy": "2024-10-05T18:03:21.069497Z",
     "iopub.status.idle": "2024-10-05T18:03:21.080937Z",
     "shell.execute_reply": "2024-10-05T18:03:21.079650Z"
    },
    "papermill": {
     "duration": 0.032278,
     "end_time": "2024-10-05T18:03:21.083865",
     "exception": false,
     "start_time": "2024-10-05T18:03:21.051587",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [],
   "source": [
    "opt = BayesSearchCV(estimator=clf,                                    \n",
    "                    search_spaces=search_spaces,                      \n",
    "                    scoring=roc_auc,                                  \n",
    "                    cv=skf,                                           \n",
    "                    n_iter=3000,                                      # max number of trials\n",
    "                    n_points=3,                                       # number of hyperparameter sets evaluated at the same time\n",
    "                    n_jobs=-1,                                        # number of jobs\n",
    "                    iid=False,                                        # if not iid it optimizes on the cv score\n",
    "                    return_train_score=False,                         \n",
    "                    refit=False,                                      \n",
    "                    optimizer_kwargs={'base_estimator': 'GP'},        # optmizer parameters: we use Gaussian Process (GP)\n",
    "                    random_state=0)                                   # random state for replicability"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ead34c6b",
   "metadata": {
    "papermill": {
     "duration": 0.014831,
     "end_time": "2024-10-05T18:03:21.114425",
     "exception": false,
     "start_time": "2024-10-05T18:03:21.099594",
     "status": "completed"
    },
    "tags": []
   },
   "source": [
    "Finally we runt the optimizer and wait for the results. We have set some limits to its operations: we required it to stop if it cannot get consistent improvements from the search (DeltaYStopper) and time dealine set in seconds (we decided for 45 minutes)."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "ec8b9fd0",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-10-05T18:03:21.145011Z",
     "iopub.status.busy": "2024-10-05T18:03:21.144533Z",
     "iopub.status.idle": "2024-10-05T18:49:45.827805Z",
     "shell.execute_reply": "2024-10-05T18:49:45.825883Z"
    },
    "papermill": {
     "duration": 2784.718312,
     "end_time": "2024-10-05T18:49:45.847105",
     "exception": false,
     "start_time": "2024-10-05T18:03:21.128793",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "LightGBM took 2784.67 seconds,  candidates checked: 39, best CV score: 0.859 ± 0.008\n",
      "Best parameters:\n",
      "OrderedDict([('colsample_bytree', 0.347317198182373),\n",
      "             ('learning_rate', 0.6603977180639046),\n",
      "             ('max_bin', 913),\n",
      "             ('max_depth', 146),\n",
      "             ('min_child_samples', 124),\n",
      "             ('min_child_weight', 3.1525373138523585),\n",
      "             ('n_estimators', 4554),\n",
      "             ('num_leaves', 308),\n",
      "             ('reg_alpha', 1.774462402814678e-07),\n",
      "             ('reg_lambda', 3.6548521376945084e-07),\n",
      "             ('scale_pos_weight', 5.448725516779605),\n",
      "             ('subsample', 0.45527937996999446),\n",
      "             ('subsample_freq', 0)])\n",
      "\n"
     ]
    }
   ],
   "source": [
    "overdone_control = DeltaYStopper(delta=0.0001)               # We stop if the gain of the optimization becomes too small\n",
    "time_limit_control = DeadlineStopper(total_time=60 * 45)     # We impose a time limit (45 minutes)\n",
    "\n",
    "best_params = report_perf(opt, X, y,'LightGBM', \n",
    "                          callbacks=[overdone_control, time_limit_control])"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "23098318",
   "metadata": {
    "papermill": {
     "duration": 0.015814,
     "end_time": "2024-10-05T18:49:45.878610",
     "exception": false,
     "start_time": "2024-10-05T18:49:45.862796",
     "status": "completed"
    },
    "tags": []
   },
   "source": [
    "# 5. Prediction on test data"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "2f092e27",
   "metadata": {
    "papermill": {
     "duration": 0.016109,
     "end_time": "2024-10-05T18:49:45.910847",
     "exception": false,
     "start_time": "2024-10-05T18:49:45.894738",
     "status": "completed"
    },
    "tags": []
   },
   "source": [
    "Having got the best hyperparameters for the data at hand, we instantiate a lightGBM using such values and train our model on all the available examples.\n",
    "<P>After having trained the model, we predict on the test set and we save the results on a csv file."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "4e12e02f",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-10-05T18:49:45.942867Z",
     "iopub.status.busy": "2024-10-05T18:49:45.942392Z",
     "iopub.status.idle": "2024-10-05T18:49:45.948728Z",
     "shell.execute_reply": "2024-10-05T18:49:45.947646Z"
    },
    "papermill": {
     "duration": 0.025701,
     "end_time": "2024-10-05T18:49:45.951211",
     "exception": false,
     "start_time": "2024-10-05T18:49:45.925510",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [],
   "source": [
    "clf = lgb.LGBMClassifier(boosting_type='gbdt',\n",
    "                         metric='auc',\n",
    "                         objective='binary',\n",
    "                         n_jobs=1, \n",
    "                         verbose=-1,\n",
    "                         random_state=0,\n",
    "                         **best_params)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "1117e6c3",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-10-05T18:49:45.983236Z",
     "iopub.status.busy": "2024-10-05T18:49:45.982805Z",
     "iopub.status.idle": "2024-10-05T18:50:04.485097Z",
     "shell.execute_reply": "2024-10-05T18:50:04.483345Z"
    },
    "papermill": {
     "duration": 18.523308,
     "end_time": "2024-10-05T18:50:04.489189",
     "exception": false,
     "start_time": "2024-10-05T18:49:45.965881",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<style>#sk-container-id-1 {\n",
       "  /* Definition of color scheme common for light and dark mode */\n",
       "  --sklearn-color-text: black;\n",
       "  --sklearn-color-line: gray;\n",
       "  /* Definition of color scheme for unfitted estimators */\n",
       "  --sklearn-color-unfitted-level-0: #fff5e6;\n",
       "  --sklearn-color-unfitted-level-1: #f6e4d2;\n",
       "  --sklearn-color-unfitted-level-2: #ffe0b3;\n",
       "  --sklearn-color-unfitted-level-3: chocolate;\n",
       "  /* Definition of color scheme for fitted estimators */\n",
       "  --sklearn-color-fitted-level-0: #f0f8ff;\n",
       "  --sklearn-color-fitted-level-1: #d4ebff;\n",
       "  --sklearn-color-fitted-level-2: #b3dbfd;\n",
       "  --sklearn-color-fitted-level-3: cornflowerblue;\n",
       "\n",
       "  /* Specific color for light theme */\n",
       "  --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n",
       "  --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, white)));\n",
       "  --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n",
       "  --sklearn-color-icon: #696969;\n",
       "\n",
       "  @media (prefers-color-scheme: dark) {\n",
       "    /* Redefinition of color scheme for dark theme */\n",
       "    --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n",
       "    --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, #111)));\n",
       "    --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n",
       "    --sklearn-color-icon: #878787;\n",
       "  }\n",
       "}\n",
       "\n",
       "#sk-container-id-1 {\n",
       "  color: var(--sklearn-color-text);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 pre {\n",
       "  padding: 0;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 input.sk-hidden--visually {\n",
       "  border: 0;\n",
       "  clip: rect(1px 1px 1px 1px);\n",
       "  clip: rect(1px, 1px, 1px, 1px);\n",
       "  height: 1px;\n",
       "  margin: -1px;\n",
       "  overflow: hidden;\n",
       "  padding: 0;\n",
       "  position: absolute;\n",
       "  width: 1px;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-dashed-wrapped {\n",
       "  border: 1px dashed var(--sklearn-color-line);\n",
       "  margin: 0 0.4em 0.5em 0.4em;\n",
       "  box-sizing: border-box;\n",
       "  padding-bottom: 0.4em;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-container {\n",
       "  /* jupyter's `normalize.less` sets `[hidden] { display: none; }`\n",
       "     but bootstrap.min.css set `[hidden] { display: none !important; }`\n",
       "     so we also need the `!important` here to be able to override the\n",
       "     default hidden behavior on the sphinx rendered scikit-learn.org.\n",
       "     See: https://github.com/scikit-learn/scikit-learn/issues/21755 */\n",
       "  display: inline-block !important;\n",
       "  position: relative;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-text-repr-fallback {\n",
       "  display: none;\n",
       "}\n",
       "\n",
       "div.sk-parallel-item,\n",
       "div.sk-serial,\n",
       "div.sk-item {\n",
       "  /* draw centered vertical line to link estimators */\n",
       "  background-image: linear-gradient(var(--sklearn-color-text-on-default-background), var(--sklearn-color-text-on-default-background));\n",
       "  background-size: 2px 100%;\n",
       "  background-repeat: no-repeat;\n",
       "  background-position: center center;\n",
       "}\n",
       "\n",
       "/* Parallel-specific style estimator block */\n",
       "\n",
       "#sk-container-id-1 div.sk-parallel-item::after {\n",
       "  content: \"\";\n",
       "  width: 100%;\n",
       "  border-bottom: 2px solid var(--sklearn-color-text-on-default-background);\n",
       "  flex-grow: 1;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-parallel {\n",
       "  display: flex;\n",
       "  align-items: stretch;\n",
       "  justify-content: center;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "  position: relative;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-parallel-item {\n",
       "  display: flex;\n",
       "  flex-direction: column;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-parallel-item:first-child::after {\n",
       "  align-self: flex-end;\n",
       "  width: 50%;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-parallel-item:last-child::after {\n",
       "  align-self: flex-start;\n",
       "  width: 50%;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-parallel-item:only-child::after {\n",
       "  width: 0;\n",
       "}\n",
       "\n",
       "/* Serial-specific style estimator block */\n",
       "\n",
       "#sk-container-id-1 div.sk-serial {\n",
       "  display: flex;\n",
       "  flex-direction: column;\n",
       "  align-items: center;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "  padding-right: 1em;\n",
       "  padding-left: 1em;\n",
       "}\n",
       "\n",
       "\n",
       "/* Toggleable style: style used for estimator/Pipeline/ColumnTransformer box that is\n",
       "clickable and can be expanded/collapsed.\n",
       "- Pipeline and ColumnTransformer use this feature and define the default style\n",
       "- Estimators will overwrite some part of the style using the `sk-estimator` class\n",
       "*/\n",
       "\n",
       "/* Pipeline and ColumnTransformer style (default) */\n",
       "\n",
       "#sk-container-id-1 div.sk-toggleable {\n",
       "  /* Default theme specific background. It is overwritten whether we have a\n",
       "  specific estimator or a Pipeline/ColumnTransformer */\n",
       "  background-color: var(--sklearn-color-background);\n",
       "}\n",
       "\n",
       "/* Toggleable label */\n",
       "#sk-container-id-1 label.sk-toggleable__label {\n",
       "  cursor: pointer;\n",
       "  display: block;\n",
       "  width: 100%;\n",
       "  margin-bottom: 0;\n",
       "  padding: 0.5em;\n",
       "  box-sizing: border-box;\n",
       "  text-align: center;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 label.sk-toggleable__label-arrow:before {\n",
       "  /* Arrow on the left of the label */\n",
       "  content: \"▸\";\n",
       "  float: left;\n",
       "  margin-right: 0.25em;\n",
       "  color: var(--sklearn-color-icon);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 label.sk-toggleable__label-arrow:hover:before {\n",
       "  color: var(--sklearn-color-text);\n",
       "}\n",
       "\n",
       "/* Toggleable content - dropdown */\n",
       "\n",
       "#sk-container-id-1 div.sk-toggleable__content {\n",
       "  max-height: 0;\n",
       "  max-width: 0;\n",
       "  overflow: hidden;\n",
       "  text-align: left;\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-toggleable__content.fitted {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-toggleable__content pre {\n",
       "  margin: 0.2em;\n",
       "  border-radius: 0.25em;\n",
       "  color: var(--sklearn-color-text);\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-toggleable__content.fitted pre {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 input.sk-toggleable__control:checked~div.sk-toggleable__content {\n",
       "  /* Expand drop-down */\n",
       "  max-height: 200px;\n",
       "  max-width: 100%;\n",
       "  overflow: auto;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {\n",
       "  content: \"▾\";\n",
       "}\n",
       "\n",
       "/* Pipeline/ColumnTransformer-specific style */\n",
       "\n",
       "#sk-container-id-1 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
       "  color: var(--sklearn-color-text);\n",
       "  background-color: var(--sklearn-color-unfitted-level-2);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-label.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
       "  background-color: var(--sklearn-color-fitted-level-2);\n",
       "}\n",
       "\n",
       "/* Estimator-specific style */\n",
       "\n",
       "/* Colorize estimator box */\n",
       "#sk-container-id-1 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-2);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-estimator.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-2);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-label label.sk-toggleable__label,\n",
       "#sk-container-id-1 div.sk-label label {\n",
       "  /* The background is the default theme color */\n",
       "  color: var(--sklearn-color-text-on-default-background);\n",
       "}\n",
       "\n",
       "/* On hover, darken the color of the background */\n",
       "#sk-container-id-1 div.sk-label:hover label.sk-toggleable__label {\n",
       "  color: var(--sklearn-color-text);\n",
       "  background-color: var(--sklearn-color-unfitted-level-2);\n",
       "}\n",
       "\n",
       "/* Label box, darken color on hover, fitted */\n",
       "#sk-container-id-1 div.sk-label.fitted:hover label.sk-toggleable__label.fitted {\n",
       "  color: var(--sklearn-color-text);\n",
       "  background-color: var(--sklearn-color-fitted-level-2);\n",
       "}\n",
       "\n",
       "/* Estimator label */\n",
       "\n",
       "#sk-container-id-1 div.sk-label label {\n",
       "  font-family: monospace;\n",
       "  font-weight: bold;\n",
       "  display: inline-block;\n",
       "  line-height: 1.2em;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-label-container {\n",
       "  text-align: center;\n",
       "}\n",
       "\n",
       "/* Estimator-specific */\n",
       "#sk-container-id-1 div.sk-estimator {\n",
       "  font-family: monospace;\n",
       "  border: 1px dotted var(--sklearn-color-border-box);\n",
       "  border-radius: 0.25em;\n",
       "  box-sizing: border-box;\n",
       "  margin-bottom: 0.5em;\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-0);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-estimator.fitted {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-0);\n",
       "}\n",
       "\n",
       "/* on hover */\n",
       "#sk-container-id-1 div.sk-estimator:hover {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-2);\n",
       "}\n",
       "\n",
       "#sk-container-id-1 div.sk-estimator.fitted:hover {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-2);\n",
       "}\n",
       "\n",
       "/* Specification for estimator info (e.g. \"i\" and \"?\") */\n",
       "\n",
       "/* Common style for \"i\" and \"?\" */\n",
       "\n",
       ".sk-estimator-doc-link,\n",
       "a:link.sk-estimator-doc-link,\n",
       "a:visited.sk-estimator-doc-link {\n",
       "  float: right;\n",
       "  font-size: smaller;\n",
       "  line-height: 1em;\n",
       "  font-family: monospace;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "  border-radius: 1em;\n",
       "  height: 1em;\n",
       "  width: 1em;\n",
       "  text-decoration: none !important;\n",
       "  margin-left: 1ex;\n",
       "  /* unfitted */\n",
       "  border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n",
       "  color: var(--sklearn-color-unfitted-level-1);\n",
       "}\n",
       "\n",
       ".sk-estimator-doc-link.fitted,\n",
       "a:link.sk-estimator-doc-link.fitted,\n",
       "a:visited.sk-estimator-doc-link.fitted {\n",
       "  /* fitted */\n",
       "  border: var(--sklearn-color-fitted-level-1) 1pt solid;\n",
       "  color: var(--sklearn-color-fitted-level-1);\n",
       "}\n",
       "\n",
       "/* On hover */\n",
       "div.sk-estimator:hover .sk-estimator-doc-link:hover,\n",
       ".sk-estimator-doc-link:hover,\n",
       "div.sk-label-container:hover .sk-estimator-doc-link:hover,\n",
       ".sk-estimator-doc-link:hover {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-3);\n",
       "  color: var(--sklearn-color-background);\n",
       "  text-decoration: none;\n",
       "}\n",
       "\n",
       "div.sk-estimator.fitted:hover .sk-estimator-doc-link.fitted:hover,\n",
       ".sk-estimator-doc-link.fitted:hover,\n",
       "div.sk-label-container:hover .sk-estimator-doc-link.fitted:hover,\n",
       ".sk-estimator-doc-link.fitted:hover {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-3);\n",
       "  color: var(--sklearn-color-background);\n",
       "  text-decoration: none;\n",
       "}\n",
       "\n",
       "/* Span, style for the box shown on hovering the info icon */\n",
       ".sk-estimator-doc-link span {\n",
       "  display: none;\n",
       "  z-index: 9999;\n",
       "  position: relative;\n",
       "  font-weight: normal;\n",
       "  right: .2ex;\n",
       "  padding: .5ex;\n",
       "  margin: .5ex;\n",
       "  width: min-content;\n",
       "  min-width: 20ex;\n",
       "  max-width: 50ex;\n",
       "  color: var(--sklearn-color-text);\n",
       "  box-shadow: 2pt 2pt 4pt #999;\n",
       "  /* unfitted */\n",
       "  background: var(--sklearn-color-unfitted-level-0);\n",
       "  border: .5pt solid var(--sklearn-color-unfitted-level-3);\n",
       "}\n",
       "\n",
       ".sk-estimator-doc-link.fitted span {\n",
       "  /* fitted */\n",
       "  background: var(--sklearn-color-fitted-level-0);\n",
       "  border: var(--sklearn-color-fitted-level-3);\n",
       "}\n",
       "\n",
       ".sk-estimator-doc-link:hover span {\n",
       "  display: block;\n",
       "}\n",
       "\n",
       "/* \"?\"-specific style due to the `<a>` HTML tag */\n",
       "\n",
       "#sk-container-id-1 a.estimator_doc_link {\n",
       "  float: right;\n",
       "  font-size: 1rem;\n",
       "  line-height: 1em;\n",
       "  font-family: monospace;\n",
       "  background-color: var(--sklearn-color-background);\n",
       "  border-radius: 1rem;\n",
       "  height: 1rem;\n",
       "  width: 1rem;\n",
       "  text-decoration: none;\n",
       "  /* unfitted */\n",
       "  color: var(--sklearn-color-unfitted-level-1);\n",
       "  border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 a.estimator_doc_link.fitted {\n",
       "  /* fitted */\n",
       "  border: var(--sklearn-color-fitted-level-1) 1pt solid;\n",
       "  color: var(--sklearn-color-fitted-level-1);\n",
       "}\n",
       "\n",
       "/* On hover */\n",
       "#sk-container-id-1 a.estimator_doc_link:hover {\n",
       "  /* unfitted */\n",
       "  background-color: var(--sklearn-color-unfitted-level-3);\n",
       "  color: var(--sklearn-color-background);\n",
       "  text-decoration: none;\n",
       "}\n",
       "\n",
       "#sk-container-id-1 a.estimator_doc_link.fitted:hover {\n",
       "  /* fitted */\n",
       "  background-color: var(--sklearn-color-fitted-level-3);\n",
       "}\n",
       "</style><div id=\"sk-container-id-1\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>LGBMClassifier(colsample_bytree=0.347317198182373,\n",
       "               learning_rate=0.6603977180639046, max_bin=913, max_depth=146,\n",
       "               metric=&#x27;auc&#x27;, min_child_samples=124,\n",
       "               min_child_weight=3.1525373138523585, n_estimators=4554, n_jobs=1,\n",
       "               num_leaves=308, objective=&#x27;binary&#x27;, random_state=0,\n",
       "               reg_alpha=1.774462402814678e-07,\n",
       "               reg_lambda=3.6548521376945084e-07,\n",
       "               scale_pos_weight=5.448725516779605,\n",
       "               subsample=0.45527937996999446, verbose=-1)</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item\"><div class=\"sk-estimator fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-1\" type=\"checkbox\" checked><label for=\"sk-estimator-id-1\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow fitted\">&nbsp;LGBMClassifier<span class=\"sk-estimator-doc-link fitted\">i<span>Fitted</span></span></label><div class=\"sk-toggleable__content fitted\"><pre>LGBMClassifier(colsample_bytree=0.347317198182373,\n",
       "               learning_rate=0.6603977180639046, max_bin=913, max_depth=146,\n",
       "               metric=&#x27;auc&#x27;, min_child_samples=124,\n",
       "               min_child_weight=3.1525373138523585, n_estimators=4554, n_jobs=1,\n",
       "               num_leaves=308, objective=&#x27;binary&#x27;, random_state=0,\n",
       "               reg_alpha=1.774462402814678e-07,\n",
       "               reg_lambda=3.6548521376945084e-07,\n",
       "               scale_pos_weight=5.448725516779605,\n",
       "               subsample=0.45527937996999446, verbose=-1)</pre></div> </div></div></div></div>"
      ],
      "text/plain": [
       "LGBMClassifier(colsample_bytree=0.347317198182373,\n",
       "               learning_rate=0.6603977180639046, max_bin=913, max_depth=146,\n",
       "               metric='auc', min_child_samples=124,\n",
       "               min_child_weight=3.1525373138523585, n_estimators=4554, n_jobs=1,\n",
       "               num_leaves=308, objective='binary', random_state=0,\n",
       "               reg_alpha=1.774462402814678e-07,\n",
       "               reg_lambda=3.6548521376945084e-07,\n",
       "               scale_pos_weight=5.448725516779605,\n",
       "               subsample=0.45527937996999446, verbose=-1)"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "clf.fit(X, y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "de7da3e1",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2024-10-05T18:50:04.529988Z",
     "iopub.status.busy": "2024-10-05T18:50:04.528483Z",
     "iopub.status.idle": "2024-10-05T18:51:21.836396Z",
     "shell.execute_reply": "2024-10-05T18:51:21.834464Z"
    },
    "papermill": {
     "duration": 77.330068,
     "end_time": "2024-10-05T18:51:21.840110",
     "exception": false,
     "start_time": "2024-10-05T18:50:04.510042",
     "status": "completed"
    },
    "tags": []
   },
   "outputs": [],
   "source": [
    "submission = pd.DataFrame({'Id':ids, 'ACTION': clf.predict_proba(X_test)[:, 1].ravel()})\n",
    "submission.to_csv(\"submission.csv\", index = False)"
   ]
  }
 ],
 "metadata": {
  "kaggle": {
   "accelerator": "none",
   "dataSources": [
    {
     "datasetId": 1513318,
     "sourceId": 2499292,
     "sourceType": "datasetVersion"
    }
   ],
   "isGpuEnabled": false,
   "isInternetEnabled": true,
   "language": "python",
   "sourceType": "notebook"
  },
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.14"
  },
  "papermill": {
   "default_parameters": {},
   "duration": 2962.370621,
   "end_time": "2024-10-05T18:51:24.485313",
   "environment_variables": {},
   "exception": null,
   "input_path": "__notebook__.ipynb",
   "output_path": "__notebook__.ipynb",
   "parameters": {},
   "start_time": "2024-10-05T18:02:02.114692",
   "version": "2.6.0"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
